题目详情:
给你一个字符串数组 words ,请你找出所有在 words 的每个字符串中都出现的共用字符( 包括重复字符),并以数组形式返回。你可以按 任意顺序 返回答案。
示例:
输入:words = ["bella","label","roller"]
输出:["e","l","l"]
解题思路:
首先取数组中的第一个字符串 firstWord
,然后遍历它的每个字符。
对于每个字符,我们使用一个布尔变量 isCommon
来表示该字符是否在所有字符串中都出现。初始时,将 isCommon
设置为 true
。
然后,我们遍历除了第一个字符串之外的其他字符串。对于每个字符串,我们判断它是否包含当前字符。如果不包含,则说明该字符不是共用字符,将 isCommon
设置为 false
,并跳出循环。否则,我们从字符串中删除该字符,以避免重复计数。
最后,如果 isCommon
为 true
,则表示当前字符是共用字符,将其添加到结果数组中。
重复上述步骤,直到遍历完 firstWord
的所有字符。
最后,返回结果数组 result
。
代码实现:
function commonChars(words) {
const result = [];
const firstWord = words[0];
for (const char of firstWord) {
let isCommon = true;
for (let i = 1; i < words.length; i++) {
if (!words[i].includes(char)) {
isCommon = false;
break;
} else {
words[i] = words[i].replace(char, '');
}
}
if (isCommon) {
result.push(char);
}
}
return result;
}
// 示例输入
const words = ["bella", "label", "roller"];
// 调用函数并输出结果
console.log(commonChars(words));