JavaScript 字符串变位词检查
在这个问题陈述中,我们的目标是借助 Javascript 功能来检查字符串变位词。因此,为了解决这个问题,我们首先需要用简单的术语理解问题。
理解问题陈述
我们给定一个字符串作为输入字符串,我们的主要目标是检查该字符串是否为变位词字符串。如果是变位词,则返回 true,否则返回 false。
什么是变位词?
在给定的问题陈述中使用了“变位词”这个词!让我们首先了解这个词的意思。变位词是指通过重新排列任何单词或句子中的字母而形成的单词。基本上,我们可以说,如果两个单词具有相同的字母且长度相同,则称为变位词。例如,我们有一个字符串“silent”,如果我们重新排列此字符串并在重新排列后得到“listen”,那么 silent 和 listen 具有相同的字母并且具有相同的长度 6。因此,这被称为字符串变位词。

给定问题的逻辑
对于代码,我们首先会清理给定的字符串,因为字符串也可能包含非单词字符以及大写字母或正则表达式,因此请清理并将其从字符串中删除。之后,我们将字符串拆分为字符数组。然后,我们将使用 Javascript 中的 sort 方法对它们进行排序。因此,现在我们将拥有排序后的字符,然后将它们再次连接成字符串。最后,我们将比较排序后的字符串以检查它们是否相等。如果它们相似,则它们是变位词。
算法
步骤 1 − 声明一个名为 isAnagram 的函数,该函数使用两个字符串参数。
步骤 2 − 将给定的字符串转换为小写,并从输入字符串中删除任何非字符以获得所需和实际结果。
步骤 3 − 应用 split、sort 和 join 方法后,检查两个字符串(在删除了额外字符之后)。此代码行将以布尔形式获取输出。
步骤 4 − 返回结果为 true 或 false。
算法代码
//function to find out anagram status
function isAnagram(str1, str2) {
// Remove any non-word characters and convert to lowercase
const remove1 = str1.replace(/[^\w]/g, "").toLowerCase();
const remove2 = str2.replace(/[^\w]/g, "").toLowerCase();
// Check if the sorted strings are equal
return remove1.split("").sort().join("") === remove2.split("").sort().join("");
}
const anagram1 = isAnagram("tutorials", "uttoslair");
const anagram2 = isAnagram("point", "heoll");
// example usage
console.log(anagram1);
console.log(anagram2);
复杂度
函数花费的时间为 O(n log n),因为该方法使用 Javascript 的 sort 方法对字符串字符进行排序。而 n 是字符串的大小。代码使用的空间为 O(n),因为它存储了已清理和排序数组的新数组。
结论
因此,上述创建的函数可用于找出给定的字符串是否为变位词,时间复杂度为 O(n log n)。我们基本上使用了一些内置方法来解决给定的问题。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP