题目
Description
两个字符串由相同的字母组成(字母的个数可不等),则为同构词。如”ab”和”ababbb” “abbbc”和”abcc”
Input
第一行有一个整数N表示N组测试数据。
接下来有N行,且每行都有两个字符串(均为小写字母组成且长度小于10000)。
Output
输出N行。若两字符串为同构词输出”Yes”,否则输出”No”。
Sample Input
2
ab ababbb
abc aac
Sample Output
Yes
No
代码块
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cn = new Scanner(System.in);
int t = cn.nextInt();
while (t-- > 0) {
String str1 = cn.next();
String str2 = cn.next();
StringBuffer str11 = uniq(str1);
StringBuffer str22 = uniq(str2);
String str111 = str11.toString();
String str222 = str22.toString();
if (str111.equals(str222))
System.out.println("Yes");
else
System.out.println("No");
}
}
//去重函数
private static StringBuffer uniq(String str1) {
char[] ch = str1.toCharArray();
StringBuffer str = new StringBuffer("");
for (int i = 0; i < ch.length; i++) {
if (ch[i] == '#')
continue;
str.append(ch[i]);
for (int j = i + 1; j < ch.length; j++) {
if (ch[j] == '#')
continue;
if (ch[i] == ch[j]) {
ch[j] = '#';
}
}
}
return str;
}
}