我们有n个词。
我们想看看是否可以在桌子周围写下n个字符,这样我们就可以从这n个字符中的一个开始并顺时针移动来获得所有单词。
请注意,如果一个单词重复 m 次,则它必须在圆圈中恰好出现 m 次。
例如:
// Number of words - Number of letters in each word
3 3
abc
bca
cab
结果: abc
第二个例子:
4 2
aa
ab
ba
bb
结果: 阿布
我们期望找到一个长度为n的字符串,可以从它的一个字符开始顺时针旋转以获得所有单词。
暴力方法:
function findWord(words){
words = words.match(/\S+/g);
let r = words[0];
for(let i=1;i<words.length;i++){
const word = words[i];
if((r + r).includes(word)) continue;
for(const c of [...word].reverse()){
while(!r.endsWith(word)) r += c;
}
}
return r;
}
console.log(findWord('aa ab ba bb'));
console.log(findWord('abc bca cab'));