原题链接在这里:https://leetcode.com/problems/repeated-string-match/description/

题目:

Given two strings A and B, find the minimum number of times A has to be repeated such that B is a substring of it. If no such solution, return -1.

For example, with A = "abcd" and B = "cdabcdab".

Return 3, because by repeating A three times (“abcdabcdabcd”), B is a substring of it; and B is not a substring of A repeated two times ("abcdabcd").

Note:
The length of A and B will be between 1 and 10000.

题解:

A重复append自己知道比B长,看B是否包含在内,若包含返回当前count.

若没有再append次A. 若B能是substring, 这个长度已经可以包含所有可能性. B的开头在0到A.length()-1的任何位置都足够盖住B.

Time Complexity: O(A.length()+B.length()). create个长度为A.length()+B.length()的string. 再用B找index.

Space: O(A.length()+B.length()).

AC Java:

class Solution {
public int repeatedStringMatch(String A, String B) {
int count = 0;
StringBuilder sb = new StringBuilder();
while(sb.length() < B.length()){
sb.append(A);
count++;
} if(sb.indexOf(B) >= 0){
return count;
}else if(sb.append(A).indexOf(B) >= 0){
return count+1;
}else{
return -1;
}
}
}

最新文章

  1. 久违的phpstorm
  2. java类加载器加载文件
  3. MSSQL数据库安装失败
  4. js让iframe高度自动
  5. SFTPTool 和 FTPTooL.java
  6. initialize or clean up your unittest within .net unit test
  7. packinfo-java的作用
  8. 1.linux下Kconfig编写规范
  9. oc学习之路----多级指针的使用和内存分析
  10. Zjnu Stadium(hdu3047带权并查集)
  11. POJ 3111 K Best(二分答案)
  12. 转帖:Html.BeginForm
  13. object 插入元素,插入HTML页面
  14. Run Loop简介
  15. nginx反向代理-解决前端跨域问题
  16. python学习3---产生随机数
  17. 为SNP增加种族人群频率
  18. KTV项目之3个ListView的跳转和加载歌手图片
  19. 目标检测(四)Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
  20. [福建集训2011][LOJ10111]相框

热门文章

  1. 【leetcode刷题笔记】Surrounded Regions
  2. Python mysql表数据和json格式的相互转换
  3. [转载]Runtime详解
  4. android studio Error:Unable to start the daemon process【转】
  5. Centos 一次卸载多个RPM包
  6. Go Mysql驱动
  7. python装饰器实现HTTP请求耗时和入参返回日志记录
  8. 语义web相关概念
  9. Linux查看文件编码格式及文件编码转换&lt;转&gt;
  10. 中文乱码之myEclipse项目导入时中文乱码(待)