這道題首先想到的是,計算字符串的各個字母的數量,然后,比較各個字母數量是否相等。
在此就可以想到字母的ASCII碼,題目標明只有小寫,那么,怎么將每個字母數量各個計算。以及存入數組中,
可以先定義一個26長度的數組,然后,對於字母數量,就可以在charAt(i)-97的位置的+1,再進行比較兩個數組是否
完全相等,在其中,如果不等,就直接break,最后,就可以根據 i 進行判斷,如果 i 不等於26,表示兩數組不是完全相等
,則輸出false,如果等於,就可以輸出true.
class Solution { public boolean isAnagram(String s, String t) { int i,j; int c1 = s.length(); int c2 = t.length(); int[] sa = new int[26]; int[] ta = new int[26]; if(c1 != c2) { return false; } for(i = 0;i <= c1-1;i++) { sa[s.charAt(i) - 97]++; ta[t.charAt(i) - 97]++; } for(i = 0;i <= 25;i++) { if(sa[i] != ta[i]) { break; } } if(i == 26) { return true; } else { return false; } } }
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。