我有這個代碼,我脫離了互聯網。它所做的是檢查兩個字符串是否是字謎。這基本上意味着它們具有相同數量的字母和相同的字母數量。例如,「廢料」和「胡扯」或「聽到」和「野兔」。等等。無論如何,我的問題是,我不明白它是如何工作的。如果任何人都可以給我一點見解,這將有所幫助!謝謝你的時間傢伙!我很感激!以下是代碼 具體說明。我沒有得到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