题目描述:点击打开链接
/*
思路:判断字符串A通过一一映射后,重新排序能否得到字符串B.
由于能够通过映射得到其它字符,所以字符串里是什么字符不重要,
重要的是字符出现的次数。
例如:字符串A="ABC",每个字符出现次数为一次,
字符串B="UIQ",每个字符出现的次数为一次,
所以A->U,B->I,C->Q就能得到字符串B或者A->I,B->U,C->Q重排后也能得到字符串B.
从此可以看出,映射为什么字符并不重要,重要的是字符出现的次数.
所以只需要统计两个字符串每个字符出现的次数,然后排序次数再判断是否相等便可。
*/
import java.util.Arrays;
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner cin = new Scanner(System.in);
while(cin.hasNext())
{
String strA = cin.next();
String strB = cin.next();
byte A[]=new byte[26];
byte B[]=new byte[26];
for(char ch:strA.toCharArray())
A[ch-'A']++;
for(char ch:strB.toCharArray())
B[ch-'A']++;
Arrays.sort(A);
Arrays.sort(B);
if(Arrays.equals(A, B))
System.out.println("YES");
else
System.out.println("NO");
}
}
}