标签:字符 tco new tps https ++ 函数 uil 简单
sb.append()
、sb.reverse()
以及sb.toString()
其中sb.reverse().toString()
经常连用给定两个字符串 A 和 B, 寻找重复叠加字符串A的最小次数,使得字符串B成为叠加后的字符串A的子串,如果不存在则返回 -1。
举个例子,A = "abcd",B = "cdabcdab"。
答案为 3, 因为 A 重复叠加三遍后为 “abcdabcdabcd”,此时 B 是其子串;A 重复叠加两遍后为"abcdabcd",B 并不是其子串。
在本题中用到了谁是谁的子字符串的问题,我一开始想的是使用
charAt(index)
这个方法逐个比较字符来判断是否在A中存在B在本题中学会了使用
sb.LastIndexOf
这个函数,通过这个函数,可以很方便的查看A中是否有B,如果没有就直接返回-1,因此此题就变得简单了。public class Solution686 { public int repeatedStringMatch(String A, String B) { int i =1; StringBuilder sb = new StringBuilder(); sb.append(A); int blength = B.length(); //该循环是为了让sb成为超过或者等于B的长度的字符串 while(sb.length()<blength){ sb.append(A); i++; } //然后查看sb中是否存在,倘若sb中不存在,那么sb再拼接上一个A能不能行 //如果还不行,就代表不能成为子字符串 return sb.indexOf(B)==-1?(sb.append(A).indexOf(B)==-1?-1:i+1):i; } }
StringBuilder、LastIndexOf和IndexOf
标签:字符 tco new tps https ++ 函数 uil 简单
原文地址:https://www.cnblogs.com/lvgj/p/12497448.html