zoukankan      html  css  js  c++  java
  • Leetcode 686.重复叠加字符串匹配

    重复叠加字符串匹配

    给定两个字符串 A 和 B, 寻找重复叠加字符串A的最小次数,使得字符串B成为叠加后的字符串A的子串,如果不存在则返回 -1。

    举个例子,A = "abcd",B = "cdabcdab"。

    答案为 3, 因为 A 重复叠加三遍后为 "abcdabcdabcd",此时 B 是其子串;A 重复叠加两遍后为"abcdabcd",B 并不是其子串。

    注意:

     A 与 B 字符串的长度在1和10000区间范围内。

    思路

     

     1 class Solution{
     2     public int repeatedStringMatch(String A,String B){
     3         int q=1;
     4         StringBuilder S=new StringBuilder(A);
     5         for(;S.length()<B.length();q++) S.append(A);
     6         if(S.indexOf(B)>=0) return q;
     7         if(S.append(A).indexOf(B)>=0) return q+1;
     8         return -1;
     9     }
    10 }

     

     

  • 相关阅读:
    NOI2021 题解
    CF605E Intergalaxy Trips
    P4762 [CERC2014]Virus synthesis
    特征向量与特征值
    uoj
    NOI 2021
    [NOI2011] NOI 嘉年华 【DP】
    CF1264D(组合数)
    绝对不咕
    题解 SP11985 【GOT
  • 原文地址:https://www.cnblogs.com/kexinxin/p/10400346.html
Copyright © 2011-2022 走看看