当我试图将两个字符串作为函数的输入并检查它们是否为字谜时,我得到了错误的输出。我写了以下代码。
class Solution {
public boolean isAnagram(String s, String t) {
char sArray[] = s.toCharArray();
char tArray[] = t.toCharArray();
Arrays.sort(sArray);
Arrays.sort(tArray);
s = sArray.toString();
t = tArray.toString();
return s.equals(t);
}
}我所接受的示例输入是s = "anagram" and t = "nagaram"。如果选中,两个char数组将打印相同的值,即
sArray is:
aaagmnr
tArray is:
aaagmnr但我的输出似乎是错误的。有谁能帮我一下,为什么我在toString()后使用toString()时会得到这样的结果?
发布于 2020-10-11 06:17:48
到String的转换是不正确的,因为数组不覆盖toString()的Object实现。
也就是说,没有理由将数组转换为String来比较它们。您可以使用Arrays.equals直接比较它们,这将返回真正的if both arrays contain the same number of elements, and all corresponding pairs of elements in the two arrays are equal。
char sArray[] = s.toCharArray();
char tArray[] = t.toCharArray();
Arrays.sort(sArray);
Arrays.sort(tArray);
return Arrays.equals(sArray,tArray);https://stackoverflow.com/questions/64301132
复制相似问题