leetcode 686. 重复叠加字符串匹配

题目如下

数据范围

复制代码
题目的意思是问我们是否可以在n个a中找到b,且问你n是多少。
首先我们可以枚举n,那么n的上限在哪?
是不是当i - len(b) > len(a)时该停下来。(因为这个时候相当于开始把第(n + 1的a[0]和b[0]做比较?)
即开始循环,但是显然我们不需要这样的循环。
换句话说如果在进入循环前没找到b就代表我们找不到一个n使得a中能找到b。

通过代码

cpp 复制代码
class Solution {
public:
    int repeatedStringMatch(string a, string b) {
        int n = a.size();
        int m = b.size();
        vector<int> next(m,0);
        for(int i = 1,j = 0;i < m;i++){
            while(j > 0 && b[i] != b[i])j = next[j - 1];
            if(b[i] == b[j])j++;
            next[i] = j;
        }
        for(int i = 0,j = 0;i - m < n;i++){
            while(j > 0 && b[j] != a[i % n])j = next[j - 1];
            if(a[i % n] == b[j])j++;
            if(j == m)return i/n + 1;
        }
        return -1;
    }
};//思路中的写法 good!
相关推荐
Maple_land22 分钟前
内建命令揭秘与环境变量全景:Linux变量体系的完整闭环
linux·运维·服务器·c++·centos
CoovallyAIHub26 分钟前
智能“下沉”:边缘AI,更低功耗、更快响应、更强隐私,YOLO26只是开始
深度学习·算法·计算机视觉
oioihoii28 分钟前
高性能推理引擎的基石:C++与硬件加速的完美融合
开发语言·c++
yy_xzz1 小时前
【数据结构】大话单链表
数据结构·链表
Lear1 小时前
【链表】LeetCode 142.环形链表
算法
CoovallyAIHub1 小时前
2025目标检测模型全景图:从RF-DETR到YOLOv12,谁主沉浮?
深度学习·算法·计算机视觉
澪吟1 小时前
算法性能的核心度量:时间复杂度与空间复杂度全解析
数据结构·算法
十五年专注C++开发1 小时前
QRingBuffer:Qt内部高效环形缓冲区
c++·qt·环形缓冲区·qringbuffer
咪咪渝粮1 小时前
108. 将有序数组转换为二叉搜索树
算法·leetcode
lzptouch1 小时前
蚁群(Ant Colony Optimization, ACO)算法
人工智能·算法·机器学习