【发布时间】:2019-09-13 07:21:51
【问题描述】:
免责声明
大家好,我知道很少有 Javascript 问题/答案可以解决如何查找两个单词是否是字谜。
我不只是在寻找一个函数来确定两个单词/字符串是否是字谜。我正在寻找一种比下面提供的更快的功能。目前,我认为下面函数的时间复杂度是O (n log n)。
我想找出一个时间复杂度为 O(n) 的函数,或者一个运行时间比提供的更快的函数。
代码
const isAnagram = (str1, str2) => {
str1 = str1.toLowerCase();
str2 = str2.toLowerCase();
if (str1.length !== str2.length) {
return false
}
let sortStr1 = str1.split('').sort().join('').trim();
let sortStr2 = str2.split('').sort().join('').trim();
return sortStr1 === sortStr2
};
console.log(isAnagram('dog', 'goD')); //true
【问题讨论】:
-
使用
O(n)排序,你的代码是O(n)。顺便说一句,您尝试了什么:/ -
对不起,我不确定你的意思
-
像en.wikipedia.org/wiki/Counting_sort 这样的东西确实给你
O(n)排序复杂性。 -
所以你是说我的方法确实返回了 O(n) 的时间复杂度?
-
是的,如果你使用
O(n)排序方法。
标签: javascript time-complexity anagram