Problem: 28. 找出字符串中第一个匹配项的下标
思路
暴力解法
解题方法
我们可以让字符串 needle 与字符串 haystack 的所有长度为 m 的子串均匹配一次。
复杂度
时间复杂度:
O(n×m),其中 n 是字符串 haystack 的长度,m 是字符串 needle的长度。最坏情况下我们需要将字符串 needle
与字符串 haystack 的所有长度为 m 的子串均匹配一次。
空间复杂度:
O(1)。我们只需要常数的空间保存若干变量。
Code
class Solution {
public int strStr(String haystack, String needle) {
for (int i = 0; i + needle.length() <= haystack.length(); i++){
boolean flag = true;
for(int j = 0; j < needle.length(); j++){
if (haystack.charAt(i + j) != needle.charAt(j)) {
flag = false;
break;
}
}
if(flag){
return i;
}
}
return -1;
}
}