StringBuilderLastIndexOf和IndexOf
Posted lvgj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了StringBuilderLastIndexOf和IndexOf相关的知识,希望对你有一定的参考价值。
StringBuilder、LastIndexOf和IndexOf
- 首先是StringBuilder,再学习leetcode中使用的最多的是
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; } }
以上是关于StringBuilderLastIndexOf和IndexOf的主要内容,如果未能解决你的问题,请参考以下文章
第三十一节:扫盲并发和并行同步和异步进程和线程阻塞和非阻塞响应和吞吐等
shell中$()和 ` `${}${!}${#}$[] 和$(()),[ ] 和(( ))和 [[ ]]
Java基础8---面向对象代码块和继承和this和super和重写和重载和final
Java基础8---面向对象代码块和继承和this和super和重写和重载和final
JS中some()和every()和join()和concat()和pop(),push(),shift(),unshfit()和map()和filter()