本文主要是介绍蓝桥杯-Anagrams问题(java),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
算法训练 Anagrams问题 时间限制:1.0s 内存限制:512.0MB问题描述Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,“Unclear”和“Nuclear”、“Rimon”和“MinOR”都是Anagrams。编写一个程序,输入两个单词,然后判断一下,这两个单词是否是Anagrams。每一个单词的长度不会超过80个字符,而且是大小写无关的。输入格式:输入有两行,分别为两个单词。输出格式:输出只有一个字母Y或N,分别表示Yes和No。输入输出样例样例输入UnclearNuclear样例输出Y
这里的想法是通过将两个字符串的每个字符转换为ASCII值,然后每个ASCII作为数组的下表,这样每个都是唯一的,循环每一个,然后每个ASCII递增,这样比较 下表为ASCII的值是否相等。
import java.util.Scanner; public class Main { public static void main(String[] args) throws Exception { Scanner in = new Scanner(System.in); String s1=in.next(); String s2=in.next(); if(s1.length()!=s2.length()) System.out.println("N"); else{ int[] a=new int[92]; int[] b=new int[92]; for(int i=0;i<s1.length();i++){ int c=s1.toUpperCase().charAt(i); int d=s2.toUpperCase().charAt(i); a[c]++; b[d]++; } boolean flag=true; for(int i=65;i<92;i++){ if(a[i]!=b[i]){ flag=false; break; } } if(flag){ System.out.println("Y"); }else{ System.out.println("N"); } } } }
这篇关于蓝桥杯-Anagrams问题(java)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!