一、什么是变位词?
一个单词的字母顺序经过调整后,变成另外一个单词。比如 “earth” & “heart”。
二、JavaScript实现
// Hash Table
function fun(aWord, bWord){
if(aWord.length != bWord.length){
return false
};
var res = {};
for(let i=0; i < aWord.length; i++){
res[aWord[i]] ? res[aWord[i]]++ : (res[aWord[i]]=1);
res[bWord[i]] ? res[bWord[i]]-- : (res[bWord[i]]=-1);
}
return Object.values(res).every(i => i==0);
}
// sorted
function fun(aWord, bWord){
if(aWord.length != bWord.length){
return false
};
let a = aWord.split('').sort();
let b = bWord.split('').sort();
let count = 0;
while(count < aWord.length){
if(a[count] != b[count]){
return false
}
count += 1;
}
return true
}
三、Python实现
# Hash Table
def bar(res, Word, i, count):
try:
res[Word[i]] += count
except:
res[Word[i]] = count
return res
def fun(aWord, bWord):
if(len(aWord) != len(bWord)):
return False
res = {}
for i in range(len(aWord)):
res = bar(res, aWord, i, 1)
res = bar(res, bWord, i, -1)
for i in res:
if(res[i] != 0):
return False
return True
# sorted
def fun(aWord, bWord):
return sorted(aWord) == sorted(bWord)