LeetCode242 有效的字母異位詞

2022-06-08 21:39:11 字數 580 閱讀 7639

給定兩個字串 s 和 t ,編寫乙個函式來判斷 t 是否是 s 的字母異位詞。

法一、排序後判斷是否相等,因為題目中說了字串都為26個小寫字母。

t 是 s的異位詞等價於兩個字串排序後相等。以後要學會這個技巧

1

class

solution

9 };

法二、雜湊表。陣列就是乙個簡單的雜湊表

1

class

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中每個字母出現的次...