給定兩個字串 s 和 t ,編寫乙個函式來判斷 t 是否是 s 的字母異位詞。
法一、排序後判斷是否相等,因為題目中說了字串都為26個小寫字母。
t 是 s的異位詞等價於兩個字串排序後相等。以後要學會這個技巧
1class
solution
9 };
法二、雜湊表。陣列就是乙個簡單的雜湊表
1class
solution
13return
true;14
}15 };
這裡因為為26個小寫字母,所以開的陣列大小為26,用該陣列記錄每個字母
的次數。這裡使用陣列作為雜湊表是因為都是小寫字母,雜湊值不會太大。
這裡要學會技巧如何將乙個字母對映到陣列7-8行,s[i] - 'a' ,這樣索引0代表
字母a。
這樣時間複雜度為o(n),空間複雜度為o(1),陣列空間大小固定。
如果雜湊值太大,並且值的個數比較少,而且跨度比較大,那麼使用陣列就不太
合適,因為陣列會帶來巨大的空間浪費。此時可以考慮採用set
Leetcode 242 有效的字母異位
time 20190901 type easy 給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的字母異位詞。示例 1 輸入 s anagram t nagaram 輸出 true 示例 2 輸入 s rat t car 輸出 false 說明 你可以假設字串只包含小寫字母。高階 如果...
LeetCode242 有效的異位詞
給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的字母異位詞。示例 1 輸入 s anagram t nagaram 輸出 true示例 2 輸入 s rat t car 輸出 false說明 你可以假設字串只包含小寫字母。高階 如果輸入字串包含 unicode 字元怎麼辦?你能否調整...
LeetCode 242 有效的字母異位
給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的字母異位詞。說明 你可以假設字串只包含小寫字母。高階 如果輸入字串包含 unicode 字元怎麼辦?你能否調整你的解法來應對這種情況?思路 兩個字串長度不等,則不滿足。兩個字串相等,則滿足。定義兩個陣列,分別記錄s和t中每個字母出現的次...