JavaScript 中的相似字符串组
如果我们可以交换str1的两个字母(在不同位置),使其等于str2,那么两个字符串str1和str2是相似的。此外,如果两个字符串str1和str2相等,则它们是相似的。
例如,“tars”和“rats”相似(在位置0和2交换),“rats”和“arts”相似,但“star”与“tars”、“rats”或“艺术”。
它们一起通过相似性形成两个连接的组:{"tars","rats","arts"}和{"star"}。请注意,尽管“tars”和“arts”并不相似,但它们属于同一组。
形式上,每个组都是这样的,当且仅当它与组中的至少一个其他单词相似时,该单词才在该组中。
给定一个字符串列表arr,其中arr中的每个字符串都是arr中所有其他字符串的变位词。我们需要编写一个函数来找出有多少组。
示例
以下是代码-
const arr = ["tars","rats","arts","star"];
const isSimilar = (str1, str2) => {
const obj = {}
let counter = 0
for(let i=0; i< str1.length; i++){
if(str1[i] !== str2[i]) { counter++ }
obj[str1[i]] = str2[i]
}
return counter === 2? true : false
}
const similarStringGroup = (arr = []) => {
const group = [[arr[0]]]
for(let i=1; i输出结果以下是控制台输出-
2