• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
p-boost-q
博客园    首页    新随笔    联系   管理    订阅  订阅
未知:长度为 K 的重复字符子串
给你一个由小写字母组成的长度为n的字符串 S ,找出所有长度为 k 且包含重复字符的子串,请你返回全部满足要求的子串的数目。
 
数据范围:  ,
进阶: 时间复杂度,空间复杂度
输入例子1:
"createfunonyoka",4
输出例子1:
4
输入例子2:
"yokagames",3
输出例子2:
1
输入例子3:
"yoka",4
输出例子3:
0
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @param k int整型 
     * @return int整型
     */
    bool isRepeatString(string s)
    {
        int length = s.length();
        for(int i = 0;i < length - 1;++i)
        {
            for(int j = i + 1;j < length;++j)
            {
                if(s[i]==s[j])
                {
                    return true;
                }
            }
        }
        return false;
    }
    
    int numKLenSubstrRepeats(string s, int k) {
        // write code here
        int result = 0;
        int length = s.length();
        if(length < k)
        {
            return isRepeatString(s) ? 1 : 0;
        }
        for(int i = 0;i <= length - k;++i)
        {
            string subString = s.substr(i, k);
            cout << subString << endl;
            if(isRepeatString(subString))
            {
                result++;
            }
        }
        return result;
    }
};

 

posted on 2022-09-11 21:29  p-boost-q  阅读(34)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3