问题描述:

拉丁正方形是一个 n*n 的数组,由 n 个不同的拉丁字母填充,每个拉丁字母恰好只在每行和每列中出现一次。编写一个程序,提示用户输入数字 n 以及字符数组,如示例输出所示,检测该输出数组是否是一个拉丁正方形。字符是从 A 开始的前面n 个字符。

代码:


import java.util.Scanner;public class Test36 {static Scanner in = new Scanner(System.in);public static void main(String[] args) {System.out.print("Enter number n:");int size = Integer.parseInt(in.nextLine());char[][] arr = new char[size][size];if(creatArr(arr,size)){if(isLatinSquare(arr))System.out.println("The input array is a Latin square");elseSystem.out.println("The input array is not a Latin square");}in.close();}public static boolean creatArr(char[][] arr,int size){System.out.printf("Enter %d rows of letters separated by spaces:\n",size);for(int i = 0; i < size; i++)for(int j = 0; j < size; j++){arr[i][j] = in.next().charAt(0);if(arr[i][j] > 'A'+size-1 || arr[i][j] < 'A') {System.out.println("Wrong input: the letters must be from A to "+(char)('A'+size-1));return false;}}return true;}public static boolean isLatinSquare(char[][] arr){for(int i = 0; i < arr.length; i++)if(judgeRow(arr[i]) != true)return false;if(judgeCol(arr) != true)return false;return true;}public static boolean judgeRow(char[] arr){for(int i = 0; i < arr.length; i++)for(int j = i + 1; j < arr.length; j++){if(arr[i] == arr[j])return false;}return true;}public static boolean judgeCol(char[][] arr){for(int col = 0; col < arr.length; col++){for(int row = 0; row < arr.length - 1; row++){for(int i = row + 1; i < arr.length; i++)if(arr[row][col] == arr[i][col])return false;}}return true;}
}

运行截图:

JAVA:(拉丁正方形)相关推荐

  1. java拉丁正方形_LeetCode JAVA解题---824. 山羊拉丁文

    LeetCode 题库 全 JAVA 解题 824. 山羊拉丁文 原题回顾: 给定一个由空格分割单词的句子 S.每个单词只包含大写或小写字母. 我们要将句子转换为 "Goat Latin&q ...

  2. java空心正方形代码_从Java中的用户输入绘制空心星号正方形/矩...

    我正在尝试创建一个程序,要求用户提供正方形/矩形的宽度和长度尺寸,然后使用#符号将其绘制出来.我几乎了解了,除了我似乎不太了解矩形的右边以正确打印出来- 这是我的代码: import java.uti ...

  3. java求正方形的周长差_Java 作业 重写正方形周长方法

    题目 编写一个应用程序,再创建一个矩形类,类中具有长,宽两个成员变量和求周长的方法. 再创建一个矩形类子类, 正方形类,类中定义求面积方法,重写周长方法,在主类中,输入一个正方形的边长,在创建正方形对 ...

  4. java计算正方形_在地图计算圆的外接正方形,并返回左上顶点和右下顶点(java、javascript)...

    javascript: /** * @param raidus 单位米 * return minLat,minLng,maxLat,maxLng */ this.getCircleBround=fun ...

  5. 拉丁正方形 java_Leetcode 221 最大正方形 动态规划

    这个暴力做法是枚举左上角,求可能的最大正方形 动态规划用dp[i][j] 表示以i,j为边长右下角的,这里的转移方程比较难推导出来 class Solution { public: int maxim ...

  6. 用java输出正方形,等腰三角形,直角三角形

    1.正方形 要求:输出 代码: for (int i = 0; i < 5; i++) {//行数for (int j = 0; j < 9; j++) {//*号个数System.out ...

  7. Java语言程序设计(基础篇)第八章(2 19 36)

    第二题(求矩阵主对角线元素的和) import java.util.Scanner; public class Text {public static void main(String[] args) ...

  8. 科技类新闻快讯_新闻快讯—您可能使用了错误HTML。

    科技类新闻快讯 I've spent the past decade freelancing as an accessibility and efficiency consultant to webs ...

  9. Vestigium-Google CodeJam 2020资格回合问题1解决方案

    Problem statement: 问题陈述: Vestigium means "trace" in Latin. In this problem we work with La ...

最新文章

  1. vue-component
  2. [Manifest]关于sharedUserIdsharedUserLabel
  3. Android:Margin和Padding
  4. 【考证】华为HCIP、HCIE认证考试大纲
  5. k8s service:ingress
  6. 美女同事DL-624+A家庭办公无线路由的解决方案!
  7. android eclipse中导入framework.jar以及使用其隐藏类的方法
  8. 戴尔win10插耳机还外放_通州附近戴尔笔记本电脑维修哪家强-北京信维佳业科技有限公司...
  9. 从编码层面对比java和c#
  10. 2017.9.10 ricehub 思考记录
  11. 巧用tab组件实现APP的布局效果
  12. 依图做语音了!识别精度创中文语音识别新高点
  13. 2101 Problem A Snake Filled
  14. thymeleaf 的hello world
  15. ARCore 之路:如何创建一个 ARCore 程序?
  16. 5G无线关键技术 — 大规模天线技术
  17. 后缀–ize_后缀-ize,-ise含义、来源和词例
  18. 论文阅读——Efficient and Robust Feature Selection via Joint L2,1-Norms Minimization
  19. 【11月18日截稿】【高校支持】第三届机器人、智能控制与人工智能国际学术会议-RICAI 2021...
  20. [原创]和Taskmgr过不去篇(无厘头版)

热门文章

  1. Windows python3安装word2vec模块常见错误处理
  2. 如果《后浪》目的就是为了感动中年人呢?B站破圈之战你看懂了吗
  3. CSS实现强制不换行、自动换行、强制换行的css代码
  4. Java中集合相关案例(泛型通配符、Collections工具类、TreeSet、TreeMap、HashMap、HashSet和集合嵌套案例)
  5. 【洞察人性】 理解行为背后的动机
  6. 【CSS】在圆上设置文字
  7. 深度学习在推荐领域的应用lookalike
  8. 计算机组成原理之主存储器
  9. 2022年5月8日 解决手机连接电脑无法选择“传输文件”
  10. 魔法少女小Scarlet