我有这个代码,我脱离了互联网。它所做的是检查两个字符串是否是字谜。这基本上意味着它们具有相同数量的字母和相同的字母数量。例如,“废料”和“胡扯”或“听到”和“野兔”。等等。无论如何,我的问题是,我不明白它是如何工作的。如果任何人都可以给我一点见解,这将有所帮助!谢谢你的时间家伙!我很感激!以下是代码 具体说明。我没有得到for循环部分。你能解释一下这个anagram函数是如何工作的吗?
boolean isAnagram(string s1, string s2) {
if (s1.length != s2.length)
return false;
char [] a1 = s1.toCharArray();
char [] a2 = s2.toCharArray();
for (int i = a1.length - 1; i >= 0; --i) {
int j;
for (j = a2.length - 1; j >= 0; --j) {
if (a1[i] == a2[j])
break;
}
if (j < 0)
return false;
}
return true;
}
该函数不正确,因为它不记得已经看到的字符:'isAnagram(“aaaa”,“abbb”)'将错误地返回'true'。 – Gumbo 2013-03-23 08:00:55
*“我有这个代码,我脱离了互联网”* - 这是“从互联网上拉代码”的问题。很多是垃圾......就像这样。 1)它不起作用。 2)它实际上以不必要的模糊方式进行。 (例如,没有理由向后迭代。)3)代码风格很糟糕;例如坏的缩进,以及如果声明无阻塞。 – 2013-03-23 09:17:20