每日一题(小白)暴力娱乐篇24

由题已知这是一个匹配题目,题目已经说了三阶幻方是给定的,经过镜像和旋转,镜像*2旋转*4;

总共八种方案,然后接收每次的数据去匹配(跳过0),如果匹配就输出匹配的数组,如果不匹配就输出-1。

题目给出了:492357816 旋转和镜像可以得到"672159834", "276951438", "294753618", "834159672", "438951276", "618753294", "816357492"

①存储8个固定字符串

②以字符串的形式接收给定数组

③进行比对,若为0则跳过,若不对应记录0,若对应记录下标

④输出结果,没找到ToMany;找到输出对应下标字符串

代码如下👇

复制代码
public static void main(String[] args) {
			Scanner scan=new Scanner(System.in);
		    String[] s1= {
		    		"672159834", "276951438", "294753618","492357816",
		    		"834159672", "438951276", "618753294", "816357492"
		    };
		    String s2="";
		    for (int i = 0; i < 3; i++) {
				s2+=scan.nextLine();
			}
		    s2=s2.replaceAll(" ", "");
		    System.out.println(s2);//测试点
		    int count=0;
		    //System.out.println(s2.charAt(1)!='0' && s1[0].charAt(1)==s2.charAt(1));测试
		    for (int i = 0; i < s1.length; i++) {
				for (int j = 0; j < 9; j++) {
					if (s2.charAt(j)!='0' && s1[i].charAt(j)==s2.charAt(j)) {
						count++;
					}
					if (s2.charAt(j)!='0' && s1[i].charAt(j)!=s2.charAt(j)) {
						count=0;
					     break;
					}
				}
				if (count>0) {
					count=i;
					break;
				}
			}
		    if (count==0) {//本来判断赋值为-1.这里省略
				System.out.println("Too Many");
			}else {
				for (int i = 0; i < 9; i++) {
					System.out.print(s1[count].charAt(i)+" ");
					if (i==2) {
						System.out.println();
					}
					if (i==5) {
						System.out.println();
					}
					if (i==8) {
						System.out.println();
					}
				}
			}
		    
			scan.close();
    }

进行优化👇

复制代码
	public static void main(String[] args) {
			Scanner scan=new Scanner(System.in);
		    String[] s1= {
		    		"672159834", "276951438", "294753618","492357816",
		    		"834159672", "438951276", "618753294", "816357492"
		    };
		    String s2="";
		    for (int i = 0; i < 3; i++) {
				s2+=scan.nextLine();
			}
		    s2=s2.replaceAll(" ", "");
		    int count=-1;//寄存下标或答案
		    for (int i = 0; i < 8; i++) {
				if (compares(s2, s1[i])) {//比较成功进行赋值
					count=i;
					break;
				} 
			}
		    if (count==-1) {//比较失败输出  太多
				System.out.println("Too Many");
			}else {
				prints(s1, count);
			}
			scan.close();
    }
	public static boolean compares(String s1,String s2) {//比较
		for (int i = 0; i < 9; i++) {
			if (s1.charAt(i)!='0') {
				if (s1.charAt(i)!=s2.charAt(i)) {
					return false;
				}
			}
		}
		return true;
	}
	public static void prints(String[] s,int x) {//打印
		for (int i = 0; i < 9; i++) {
			System.out.print(s[x].charAt(i)+" ");
			if (i==2) {
				System.out.println();
			}
			if (i==5) {
				System.out.println();
			}
			if (i==8) {
				System.out.println();
			}
		}
	}
相关推荐
✿ ༺ ོIT技术༻10 分钟前
剑指offer第2版:链表系列
数据结构·算法·链表
yiridancan35 分钟前
终极剖析HashMap:数据结构、哈希冲突与解决方案全解
java·数据结构·算法·哈希算法
满分观察网友z37 分钟前
性能优化大作战:从 O(N*M) 到 O(N),我的哈希表奇遇记(1865. 找出和为指定值的下标对)
算法
点云SLAM3 小时前
二叉树算法详解和C++代码示例
数据结构·c++·算法·红黑树·二叉树算法
今天背单词了吗98010 小时前
算法学习笔记:19.牛顿迭代法——从原理到实战,涵盖 LeetCode 与考研 408 例题
笔记·学习·算法·牛顿迭代法
jdlxx_dongfangxing10 小时前
进制转换算法详解及应用
算法
why技术11 小时前
也是出息了,业务代码里面也用上算法了。
java·后端·算法
2501_9228955812 小时前
字符函数和字符串函数(下)- 暴力匹配算法
算法
沐尘而生12 小时前
【AI智能体】智能音视频-搭建可视化智能体
数据库·人工智能·ai作画·音视频·娱乐
IT信息技术学习圈13 小时前
算法核心知识复习:排序算法对比 + 递归与递推深度解析(根据GESP四级题目总结)
算法·排序算法