如題
看上去很簡單,但是有點蛋疼。直接的做法是什麼,遍歷s,對應的取每一位字元然後對應從t中刪除相同的字元,直觀的實現
結果也可以。public static boolean isanagram(string s, string t)
for(int i=0;i但是,很蛋疼的是,時間超限了
另尋它法,s和t擁有相同的字元,也就是兩個通過位置調換可以相互轉換,那麼同樣的可以通過不同的操作步驟,獲得相同的另乙個字串。
public static boolean isanagram1(string s, string t)
char sc = s.tochararray();
char tc = t.tochararray();
arrays.sort(sc);
arrays.sort(tc);
return arrays.equals(tc, sc);
}

還有其他方法麼,有的,在第一種方法中,我們對於匹配上的字元是通過對應的刪除操作,那麼我們是否可以想辦法通過乙個數來記錄對應字元呢
public static boolean isanagram2(string s, string t)
mapnum=new hashmap();
for(int i=0;i結果
兩個都適用於包含 unicode 字元的情況,僅僅只是24個字母的話,也不需要用map存,使用陣列存放記錄次數都可以
Leetcode 242 有效的字母異位
time 20190901 type easy 給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的字母異位詞。示例 1 輸入 s anagram t nagaram 輸出 true 示例 2 輸入 s rat t car 輸出 false 說明 你可以假設字串只包含小寫字母。高階 如果...
LeetCode 242 有效的字母異位
給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的字母異位詞。說明 你可以假設字串只包含小寫字母。高階 如果輸入字串包含 unicode 字元怎麼辦?你能否調整你的解法來應對這種情況?思路 兩個字串長度不等,則不滿足。兩個字串相等,則滿足。定義兩個陣列,分別記錄s和t中每個字母出現的次...
LeetCode242有效的字母異位詞
給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的乙個字母異位詞。例如,s anagram t nagaram 返回 true s rat t car 返回 false 注意 假定字串只包含小寫字母。兩個int型陣列,sarray和tarray,來儲存s和t字串中的字元情況,a對應陣列...