• 入门力扣自学笔记193 C++ (题目编号:1668)


    1668. 最大重复子字符串

    题目:

    给你一个字符串 sequence ,如果字符串 word 连续重复 k 次形成的字符串是 sequence 的一个子字符串,那么单词 word 的 重复值为 k 。单词 word 的 最大重复值 是单词 word 在 sequence 中最大的重复值。如果 word 不是 sequence 的子串,那么重复值 k 为 0 。

    给你一个字符串 sequence 和 word ,请你返回 最大重复值 k 。


    示例 1:

    输入:sequence = "ababc", word = "ab"
    输出:2
    解释:"abab" 是 "ababc" 的子字符串。


    示例 2:

    输入:sequence = "ababc", word = "ba"
    输出:1
    解释:"ba" 是 "ababc" 的子字符串,但 "baba" 不是 "ababc" 的子字符串。


    示例 3:

    输入:sequence = "ababc", word = "ac"
    输出:0
    解释:"ac" 不是 "ababc" 的子字符串。


    提示:

    1 <= sequence.length <= 100
    1 <= word.length <= 100
    sequence 和 word 都只包含小写英文字母。


    来源:力扣(LeetCode)
    链接:https://leetcode.cn/problems/maximum-repeating-substring
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


    思路:

    这道题直接利用find函数进行查找,如果找到一组就令结果加一,最后返回结果即可。


    代码:

    1. class Solution {
    2. public:
    3. int maxRepeating(string sequence, string word) {
    4. int ans = 0;
    5. string cur = word;
    6. while(sequence.find(cur) != string::npos)
    7. {
    8. ++ ans;
    9. cur += word;
    10. }
    11. return ans;
    12. }
    13. };

    注:

    1.string::npos

    npos是一个常数,用来表示不存在的位置,类型一般是std::container_type::size_type。

    许多容器都提供这个东西。取值由实现决定,一般是-1,这样做,就不会存在移植的问题了。npos表示string的结束位子,是string::size_type  类型的,也就是find()返回的类型。

    还有vector::size_type 容器类型的。

    返回一个名为 string::npos 的特殊值,说明查找没有匹配。

    例如:

    1. string str;
    2. pos=str.find_first_of("h");
    3. if(pos!=string::npos)
    4. {..
    5. cout<<"找到了h字符"<
    6. }

  • 相关阅读:
    Qt的QItemDelegate使用
    元宇宙基础理论、架构设计、关键技术和行业应用-总纲
    MySQL (2)
    10月11日,每日信息差
    从阿里、头条面试回来,面试官最喜欢问的Jvm和Redis你了解多少?
    Day42-43
    Android WMS——ViewRootImpl分析(六)
    实验送样、数据分析样品、组名命名规范
    【快速上手系列】使用七牛云+webuploader实现对象云存储(OSS)
    js 作用域理解(查找变量)
  • 原文地址:https://blog.csdn.net/DK_Sorhic/article/details/127664054