JAVA:(拉丁正方形)
问题描述:
拉丁正方形是一个 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:(拉丁正方形)相关推荐
- java拉丁正方形_LeetCode JAVA解题---824. 山羊拉丁文
LeetCode 题库 全 JAVA 解题 824. 山羊拉丁文 原题回顾: 给定一个由空格分割单词的句子 S.每个单词只包含大写或小写字母. 我们要将句子转换为 "Goat Latin&q ...
- java空心正方形代码_从Java中的用户输入绘制空心星号正方形/矩...
我正在尝试创建一个程序,要求用户提供正方形/矩形的宽度和长度尺寸,然后使用#符号将其绘制出来.我几乎了解了,除了我似乎不太了解矩形的右边以正确打印出来- 这是我的代码: import java.uti ...
- java求正方形的周长差_Java 作业 重写正方形周长方法
题目 编写一个应用程序,再创建一个矩形类,类中具有长,宽两个成员变量和求周长的方法. 再创建一个矩形类子类, 正方形类,类中定义求面积方法,重写周长方法,在主类中,输入一个正方形的边长,在创建正方形对 ...
- java计算正方形_在地图计算圆的外接正方形,并返回左上顶点和右下顶点(java、javascript)...
javascript: /** * @param raidus 单位米 * return minLat,minLng,maxLat,maxLng */ this.getCircleBround=fun ...
- 拉丁正方形 java_Leetcode 221 最大正方形 动态规划
这个暴力做法是枚举左上角,求可能的最大正方形 动态规划用dp[i][j] 表示以i,j为边长右下角的,这里的转移方程比较难推导出来 class Solution { public: int maxim ...
- 用java输出正方形,等腰三角形,直角三角形
1.正方形 要求:输出 代码: for (int i = 0; i < 5; i++) {//行数for (int j = 0; j < 9; j++) {//*号个数System.out ...
- Java语言程序设计(基础篇)第八章(2 19 36)
第二题(求矩阵主对角线元素的和) import java.util.Scanner; public class Text {public static void main(String[] args) ...
- 科技类新闻快讯_新闻快讯—您可能使用了错误HTML。
科技类新闻快讯 I've spent the past decade freelancing as an accessibility and efficiency consultant to webs ...
- Vestigium-Google CodeJam 2020资格回合问题1解决方案
Problem statement: 问题陈述: Vestigium means "trace" in Latin. In this problem we work with La ...
最新文章
- vue-component
- [Manifest]关于sharedUserIdsharedUserLabel
- Android:Margin和Padding
- 【考证】华为HCIP、HCIE认证考试大纲
- k8s service:ingress
- 美女同事DL-624+A家庭办公无线路由的解决方案!
- android eclipse中导入framework.jar以及使用其隐藏类的方法
- 戴尔win10插耳机还外放_通州附近戴尔笔记本电脑维修哪家强-北京信维佳业科技有限公司...
- 从编码层面对比java和c#
- 2017.9.10 ricehub 思考记录
- 巧用tab组件实现APP的布局效果
- 依图做语音了!识别精度创中文语音识别新高点
- 2101 Problem A Snake Filled
- thymeleaf 的hello world
- ARCore 之路:如何创建一个 ARCore 程序?
- 5G无线关键技术 — 大规模天线技术
- 后缀–ize_后缀-ize,-ise含义、来源和词例
- 论文阅读——Efficient and Robust Feature Selection via Joint L2,1-Norms Minimization
- 【11月18日截稿】【高校支持】第三届机器人、智能控制与人工智能国际学术会议-RICAI 2021...
- [原创]和Taskmgr过不去篇(无厘头版)