/** 小明正在分析一本小说中的人物相关性。 他想知道在小说中 Alice 和 Bob有多少次同时出现。 更准确的说,小明定义 Alice 和 Bob“同时出现”的意思是: 在小说文本中 Alice 和 Bob 之间不超过 K 个字符。 例如以下文本: This is a story about Alice and Bob. Alice wants to send a private message to Bob. 假设 K = 20,则 Alice 和 Bob 同时出现了 2 次, 分别是“Alice and Bob”和“Bob. Alice”。 前者 Alice 和 Bob 之间有 5 个字符,后者有 2 个字符。 注意: 1. Alice 和 Bob 是大小写敏感的,alice 或 bob 等并不计算在内。 2. Alice 和 Bob 应为单独的单词,前后可以有标点符号和空格,但是不能有字母。 例如 Bobbi 並不算出现了 Bob。
时间: 2023-05-29 10:03:30 浏览: 330
(中小学教育)三元一次方程组的解法.ppt
*//**
* 统计小说中 Alice 和 Bob 同时出现的次数
* @param {string} novel - 小说文本
* @param {number} k - 字符间隔数
* @returns {number} - Alice 和 Bob 同时出现的次数
*/
function countAliceAndBob(novel, k) {
const alice = 'Alice';
const bob = 'Bob';
let count = 0;
// 将小说中的标点符号和空格替换为空格
novel = novel.replace(/[^\w]/g, ' ');
// 将小说文本转换成单词数组
const words = novel.split(' ');
for (let i = 0; i < words.length; i++) {
if (words[i] === alice || words[i] === bob) {
// 如果当前单词是 Alice 或 Bob,则查找与其距离不超过 k 的单词中是否有另一个人名
for (let j = i + 1; j < words.length && j <= i + k; j++) {
if (words[j] === alice || words[j] === bob) {
// 如果找到了,则计数器加一,并退出内层循环
count++;
break;
}
}
}
}
return count;
}
阅读全文