查询一个字符串中某个字符重复出现的次数

代码:

let a=prompt("请输入一个字符串","");
    let search;
    //console.log(typeof a);
    function findChar(item,s){
        let re=new RegExp(item,"ig");
        let len=s.match(re).length;
        console.log(item+":"+len)
    };
    findChar(search=prompt("请输入你要查询的字符串"),a);

运行结果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用滑动窗口的思想来解决这个问题。具体步骤如下: 1. 初始化滑动窗口的左右边界,以及一个长度为 26 的数组,用来记录每个字符出现次数。 2. 遍历字符串,每遇到一个字符,就将该字符出现次数加 1。同时,将滑动窗口的右边界向右移动一位。 3. 如果当前滑动窗口字符出现次数大于等于 k,就继续向右移动右边界,直到该字符出现次数小于 k。 4. 如果当前滑动窗口所有字符出现了至少 k 次,就更新最长连续子串的长度。 5. 如果当前滑动窗口某个字符出现次数小于 k,就将该字符出现次数减 1,并将滑动窗口的左边界向右移动一位。 6. 重复上述步骤,直到遍历完整个字符串。 下面是示例代码实现: ```python def find_longest_substring(s: str, k: int) -> int: ans = 0 n = len(s) freq = [0] * 26 # 记录每个字符出现次数 # 滑动窗口的左右边界 left, right = 0, 0 while right < n: # 将当前字符出现次数加 1 freq[ord(s[right]) - ord('a')] += 1 # 移动右边界 right += 1 # 如果当前滑动窗口字符出现次数大于等于 k,就继续向右移动右边界,直到该字符出现次数小于 k while left < right and min(freq) >= k: # 更新最长连续子串的长度 ans = max(ans, right - left) # 将左边界向右移动一位,并将对应字符出现次数减 1 freq[ord(s[left]) - ord('a')] -= 1 left += 1 return ans ``` 注意,上述代码使用了 ord() 函数将字符转换成 ASCII 码,从而方便地将字符转换成数字。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值