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