「JavaScript」统计子串出现次数「字符串分割」✂️

计算某字符出现次数

https://www.nowcoder.com/practice/a35ce98431874e3a820dbe4b2d0508b1

一、算法思路

本题目要求统计子串在主字符串中的出现次数,支持大小写不敏感的匹配。可以通过以下步骤解决:

  1. 大小写忽略
    • 将主字符串和子字符串统一转换为小写,确保匹配时不区分大小写。
  2. 字符串分割
    • 使用 split 方法将主字符串按子串分割,得到分割段数减一,即为子串的出现次数。
  3. 边界条件处理
    • 确保主字符串和子字符串的输入有效,避免异常情况(如输入不是字符串)。

二、Code

以下是简洁的代码版本,并添加详细注释:

// 引入 readline 模块,用于从标准输入读取数据
const rl = require("readline").createInterface({ input: process.stdin });

// 创建异步迭代器,支持逐行读取输入
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

// 异步立即执行函数,主逻辑入口
void (async function () {
    // 读取主字符串
    const line = await readline();
    // 读取子字符串
    const code = await readline();

    /**
     * 统计子串出现次数的函数
     * @param {string} str - 主字符串
     * @param {string} s - 子字符串
     * @returns {number} - 子串在主字符串中的出现次数
     */
    function findSum(str, s) {
        // 将主字符串转换为小写,忽略大小写差异
        const res = str.toLocaleLowerCase();
        // 使用 split 按子字符串分割,计算分割段数减 1
        return res.split(s.toLocaleLowerCase()).length - 1;
    }

    // 输出子串出现的次数
    console.log(findSum(line, code));
})();
全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务