ff函数o(nlogn)
的运行时间如何?
function isPermutation(a, b) {
if (a.length !== b.length) {
return false;
}
return a.split("").sort().join() === b.split("").sort().join();
}
你没有检查两个字符串的长度,还是依赖于sort的实现?
答案 0 :(得分:1)
根据Permutation的定义,当且仅当第一个String中的所有字符也在第二个字符串中时,String才是另一个字符串的排列。
示例:"answer"
是"awerns"
的排名。
因此,要编写一个算法来检查一个字符串是否是另一个字符串的排列,您只需:
检查两个字符串的长度是否相同,如果它们不相同则返回false。
对于String中的每个字母,检查它是否也存在于String 2中。
对两个字符串进行排序
字符串中的每个字符串都是顺序的,例如stringOne[i] == stringTwo[i]
因此,如果您使用Quick Sort或Merge Sort这样的良好排序算法,则总体运行时间为