是否有一系列转换步骤将给定的源字符串转换为目标字符串?
注意:每一步都可以转换一个字符(替换应该是'A'-'Z'之间的字符)并且必须转换该字符的所有出现。 示例如下。
Source: "ABA"
Dest: "BAB"
Output: True
Explanation: ABA -> A**C**A -> **B**C**B** -> B**A**B
Source: "AA"
Dest: "BC"
Output: False
Explanation: AA -> BB
我认为 HashMap
有效。但是还有另一种数据结构,我不去逐个字符地比较吗?
最佳答案
你可以试试这个:
private static boolean test(String s1, String s2) {
if(s1.length() != s2.length()) return false;
Map<Character, Character> map = new HashMap<>();
for (int i = 0; i < s1.length(); i++) {
char c1 = s1.charAt(i);
char c2 = s2.charAt(i);
if (map.containsKey(c1)) {
if (!map.get(c1).equals(c2)) {
return false;
}
} else {
map.put(c1, c2);
}
}
return map.size() < 26;
}
关于java - 源字符串可以转换为目标字符串吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56388540/