LeetCode(242 字母異構)

2021-09-29 20:16:36 字數 1023 閱讀 7715

如題

看上去很簡單,但是有點蛋疼。直接的做法是什麼,遍歷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對應陣列...