实现 strStr()
1.基本方法
循环依次判断对应各个位置相等。
//leetcode-28
class Solution {
public int strStr(String haystack, String needle) {
if(haystack.length() < needle.length()){
return -1;
}
for(int i = 0; i <= haystack.length() - needle.length(); i++){
boolean is = true;
for(int j = 0; j < needle.length(); j++){
if(haystack.charAt(i + j) != needle.charAt(j)){
is = false;
break;
}
}
if(is == true){
return i;
}
}
return -1;
}
}
2.进阶方法
KKKMMMPPP
重复的子字符串
1.基本方法
从小到大枚举子串长度n,循环判断字符串中相隔n的字符是否相等,如果全部相等,则返回true。
//leetcode-459
class Solution {
public boolean repeatedSubstringPattern(String s) {
//i为子串的长度
for(int i = 1; i*2 <= s.length(); i++){
int j;
if(s.length() % i == 0){
for(j = i; j < s.length(); j++){
if(s.charAt(j) != s.charAt(j - i)){
break;
}
}
if(j == s.length()){
return true;
}
}
}
return false;
}
}
2.进阶方法
KKKMMMPPP
未完待续。。。