題目說明
給兩個字串 s 和 t,請判斷 t 是否是 s的字母異位詞(anagram。
異位詞的意思是:兩個字串包含相同的字母,且出現次數相同。
範例
Input: s = "anagram", t = "nagaram"
Output: true
Input: s = "rat", t = "car"
Output: false
程式碼
Python 解法(使用 Counter)
from collections import Counter
def isAnagram(s: str, t: str) -> bool:
return Counter(s) == Counter(t)
Java 解法(排序法)
import java.util.Arrays;
class Solution {
public boolean isAnagram(String s, String t) {
if (s.length() != t.length()) return false;
char[] sArr = s.toCharArray();
char[] tArr = t.toCharArray();
Arrays.sort(sArr);
Arrays.sort(tArr);
return Arrays.equals(sArr, tArr);
}
}
複雜度分析
Python Counter 解法:
Java 排序解法:
Java vs Python 差異