給定兩個字串 s 和 t ,編寫乙個函式來判斷 t 是否是 s 的字母異位詞。
示例 1:
輸入: s = "anagram", t = "nagaram"
輸出: true
示例 2:
輸入: s = "rat", t = "car"
輸出: false
說明:
你可以假設字串只包含小寫字母。
高階:如果輸入字串包含 unicode 字元怎麼辦?你能否調整你的解法來應對這種情況?
解法一:將兩個字串排序,然後比較。時間複雜度 o(nlogn)
public
boolean
isanagram
(string s, string t)
char
str1 = s.
tochararray()
;char
str2 = t.
tochararray()
; arrays.
sort
(str1)
; arrays.
sort
(str2)
;return arrays.
equals
(str1, str2)
;}
解法二:計數,在只有小寫字母的情況下只需要乙個容量為26的陣列,先遍歷字串,對於第乙個字串**現的字母將對應位置加一,第二個字串**現的字母對應位置減一,如果最後陣列內均為0,則為異位詞。
時間複雜度o(n)
public
boolean
isanagram
(string s, string t)
int[
] table =
newint[26
];for(
int i =
0; i < s.
length()
; i++
)for
(int i =
0; i < t.
length()
; i++)}
return
true
;}
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對應陣列...