算法 2273. 移除字母异位词后的结果数组
示例:
输入:words = [“abba”,“baba”,“bbaa”,“cd”,“cd”] 输出:[“abba”,“cd”] 解释:
获取结果数组的方法之一是执行下述步骤:
- 由于 words[2] = “bbaa” 和 words[1] = “baba” 是字母异位词,选择下标 2 并删除 words[2] 。 现在 words = [“abba”,“baba”,“cd”,“cd”] 。
- 由于 words[1] = “baba” 和 words[0] = “abba” 是字母异位词,选择下标 1 并删除 words[1] 。 现在 words = [“abba”,“cd”,“cd”] 。
- 由于 words[2] = “cd” 和 words[1] = “cd” 是字母异位词,选择下标 2 并删除 words[2] 。 现在 words = [“abba”,“cd”] 。 无法再执行任何操作,所以 [“abba”,“cd”] 是最终答案。
解析
- 对数组中的字符串进行排序,如果相等,那么就删除
// 字符串内部排序
Array.from(string).sort().join('')
/**
* @param {string[]} words
* @return {string[]}
*/
var removeAnagrams = function(words) {
let p = 1
while(p < words.length){
const currentWord = Array.from(words[p]).sort().join('')
const preWord = Array.from(words[p-1]).sort().join('')
if(currentWord == preWord){
words.splice(p,1)
}else{
p++
}
}
return words
};