• leetcode686


    /*
    上来的想法是KMP的思想,但是具体不会KMP的实现,c++STL的string 中的find?但是要注意A的长度与B的长度的问题,首先A的长度要大于B的长度
    分为三个阶段: 1. A比B的长度要短,这时A要不断增加。  2.  A 比 B 刚好长,      3,  A 比 B 刚好长的长度 + 1个A的长度, 这时能够保证在A的原始的串中能够索引完一遍B的长度,如果此时没有找到那么就要返回-1
    cdab cdab
    abcd-abcd 
    abcd-abcd-abcd
    time complexity ?
    */
    class Solution {
    public:
        int repeatedStringMatch(string A, string B) {
            int count = 0;
            string str;
            while (str.size() < B.size()){   // 使A达到刚好比B长的情况,记录此时的重复次数
                str.append(A);
                count++;
            }
            if (str.find(B) != -1){
                return count;
            }
            str.append(A);            // 再加一次A
            if (str.find(B) != -1){   // 保证A的所有的字符都能被B索引一次
                return ++count;
            }
            return -1;
        }
    };
  • 相关阅读:
    累计定时中断次数使LED灯闪烁
    累计主循环次数使LED灯闪烁
    树莓派
    树莓派
    树莓派--bcm2835 library (2) 交叉编译BCM2835
    树莓派 -- bcm2835 library (1)
    树莓派
    树莓派
    树莓派
    树莓派-3 启用root
  • 原文地址:https://www.cnblogs.com/asenyang/p/9735213.html
Copyright © 2020-2023  润新知