/**
* leetcode题 2306.公司命名
* 给你一个字符串数组 ideas 表示在公司命名过程中使用的名字列表。公司命名流程如下:
* 从 ideas 中选择 2 个 不同 名字,称为 ideaA 和 ideaB
* 交换 ideaA 和 ideaB 的首字母
* 如果得到的两个新名字 都 不在 ideas 中,那么 ideaA ideaB(串联 ideaA 和 ideaB ,中间用一个空格分隔)是一个有效的公司名字
* 否则,不是一个有效的名字
* 返回 不同 且有效的公司名字的数目
*
* 示例 1:
* 输入:ideas = ["coffee","donuts","time","toffee"]
* 输出:6
* 解释:下面列出一些有效的选择方案:
* - ("coffee", "donuts"):对应的公司名字是 "doffee conuts"
* - ("donuts", "coffee"):对应的公司名字是 "conuts doffee"
* - ("donuts", "time"):对应的公司名字是 "tonuts dime"
* - ("donuts", "toffee"):对应的公司名字是 "tonuts doffee"
* - ("time", "donuts"):对应的公司名字是 "dime tonuts"
* - ("toffee", "donuts"):对应的公司名字是 "doffee tonuts"
* 因此,总共有 6 个不同的公司名字
*
* 下面列出一些无效的选择方案:
* - ("coffee", "time"):在原数组中存在交换后形成的名字 "toffee"
* - ("time", "toffee"):在原数组中存在交换后形成的两个名字
* - ("coffee", "toffee"):在原数组中存在交换后形成的两个名字
* 示例 2:
* 输入:ideas = ["lack","back"]
* 输出:0
* 解释:不存在有效的选择方案。因此,返回 0
*/
let ideas = ["coffee", "donuts", "time", "toffee"]
function arra(ideas) {
// 储存结果的二维数组
let twoArr = []
for (let i = 0
let arr = []
arr.push(ideas[i])
let arr2 = ideas.filter(item => {
return ideas[i] !== item
})
let newArr
for (let j = 0
if (arr.length > 1) {
arr.splice(1, 1)
}
arr.push(arr2[j])
newArr = arr.slice(0)
twoArr.push(newArr)
}
}
// 过滤方法
// console.log('twoArr', twoArr)
let twoArr2, start1, start2, newStr1, newStr2
for (let i = 0
const element = twoArr[i]
start1 = element[0].charAt(0)
start2 = element[1].charAt(0)
newStr1 = start2 + element[0].slice(1)
newStr2 = start1 + element[1].slice(1)
// console.log(newStr1, newStr2)
if (ideas.indexOf(newStr1) != -1 || ideas.indexOf(newStr2) != -1) {
twoArr.splice(i, 1, " ")
}
twoArr2 = twoArr.filter(item => {
return item != " "
})
}
console.log('twoArr2', twoArr2)
console.log('twoArr2', twoArr2.length)
}
arra(ideas)