leetcode 有效的字元異位詞

2021-09-25 11:44:57 字數 2174 閱讀 9330

題目描述:

給定兩個字串 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 ...