題目描述:
給定兩個字串 s 和 t ,編寫乙個函式來判斷 t 是否是 s 的字母異位詞。
示例 1:
輸入: s = "anagram", t = "nagaram"
輸出: true
示例 2:
輸入: s = "rat", t = "car"
輸出: false
說明:你可以假設字串只包含小寫字母。
通過將 s 的字母重新排列成 t 來生成變位詞。因此,如果 t 是 s的變位詞,對兩個字串進行排序將產生兩個相同的字串。此外,如果 s 和 t 的長度不同,t 不能是 s 的變位詞,我們可以提前返回。
複雜度分析
時間複雜度:我們用的是排序,則如果是快排,則是o(nlogn),而比較兩個字串的時間複雜度為o(n),故總體時間複雜度為o(nlogn);
/**
* 描述: 有效的字串異位詞
* 題目:
* 給定兩個字串 s 和 t ,編寫乙個函式來判斷 t 是否是 s 的字母異位詞。
* * 示例 1:
* 輸入: s = "anagram", t = "nagaram"
* 輸出: true
* 示例 2:
* 輸入: s = "rat", t = "car"
* 輸出: false
* * @author pengjie_yao
* @date 2019/7/22 19:59
*/public class stringectopia
/*** 判斷字串異位: 排序方式: 通過比較排序後的陣列是否相等
** @param s
* @param t
* @return
*/public static boolean isanagram(string s, string t)
// 2. 對兩個字串進行排序,比較排序後的結果
char array1 = s.tochararray();
char array2 = t.tochararray();
arrays.sort(array1);
arrays.sort(array2);
return arrays.equals(array1, array2);
}
}
思路: 通過記錄兩個字串中每個字串中每個字元出現的次數,如果兩個字串中每個字元出現的次數相等,那麼就是有效字元異位詞
時間複雜度: 使用了hashmap,則時間複雜度為o(n)
**:
/**
* 描述: 有效的字串異位詞
* 題目:
* 給定兩個字串 s 和 t ,編寫乙個函式來判斷 t 是否是 s 的字母異位詞。
* * 示例 1:
* 輸入: s = "anagram", t = "nagaram"
* 輸出: true
* 示例 2:
* 輸入: s = "rat", t = "car"
* 輸出: false
* * @author pengjie_yao
* @date 2019/7/22 19:59
*/public class stringectopia
/*** 判斷字串異位: map方式,通過比較出現元素的個數
** @param s
* @param t
* @return
*/public static boolean isanagram(string s, string t)
// 2. 轉化為陣列
char chars = s.tochararray();
char chart = t.tochararray();
// 用來儲存t和s**現字元的次數
hashmapmaps = new hashmap(16);
hashmapmapt = new hashmap(16);
for (int i = 0; i < s.length(); i++) else
if (mapt.get(chart[i]) == null)else
}return maps.equals(mapt);
}}
LeetCode有效的字母異位詞
給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的乙個字母異位詞。示例 1 輸入 s anagram t nagaram 輸出 true 示例 2 輸入 s rat t car 輸出 false 說明 你可以假設字串只包含小寫字母。高階 如果輸入字串包含 unicode 字元怎麼辦?你...
LeetCode 有效的字母異位詞
給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的字母異位詞。示例 1 輸入 s anagram t nagaram 輸出 true示例 2 輸入 s rat t car 輸出 false說明 你可以假設字串只包含小寫字母。高階 如果輸入字串包含 unicode 字元怎麼辦?你能否調整...
leetcode 有效的字母異位詞
方法一 暴力法 class solution def isanagram self,s str,t str bool return sorted s sorted t 方法二 分開比較 長度 去重 字元個數 class solution def isanagram self,s str,t str ...