Given two stringssandt, write a function to determine iftis an anagram ofs.
For example,s= "anagram",t= "nagaram", return true.s= "rat",t= "car", return false.
Note:You may assume the string contains only lowercase alphabets.
這道題首先還是要先明確Anagram的定義,除了字母的排序順序可以不一樣外,其他都得一樣。
因為如果兩個String互為anagram,他們的length是相同的。
所以我們可以直接新建一個length為26的int[]。(題目說了只考慮小寫字母,所以26就可以了)。
然后對于s,識別到新的字母的值就+進這個int[],而對于t,識別到新的字母的值就從int[]中移除。
如果這兩個互為anagram的話,那么這個計算完成后,這個int[]的值肯定是為0的。
代碼如下。~
public class Solution { public boolean isAnagram(String s, String t) { if(s.length()!=t.length()){ return false; } int[] test = new int[26]; for (int i = 0; i < s.length(); i++){ test[s.charAt(i) - 'a']++; } for (int i = 0; i < t.length(); i++){ test[t.charAt(i) - 'a']--; } for(int i=0;i<test.length;i++){ if(test[i]!=0){ return false; } } return true; }}新聞熱點
疑難解答