提供一个不太好的思路,开始我试图用异或来计算出总的needle的结果,然后这个值和目标字符串异或,如果等于0,说明相同。但是这样不行,异或相当于一个加和结果,但是过程可能有很多组合。
所以,最终还是老老实实的,如果发现第一位相等的,
class Solution {
public int strStr(String haystack, String needle) {
if(needle.length()==0){
return 0;
}
if(haystack.length()==0||haystack.length()<needle.length()){
return -1;
}
char[] nd=needle.toCharArray();
char[] hs=haystack.toCharArray();
char first=nd[0];
int len=nd.length;
for(int j=0;j<hs.length;j++){
if(hs[j]!=first){
continue;
}else{
boolean flag=true;
if(hs.length-j<len){
break;
}
for(int k=0;k<len;k++){
if(nd[k]!=hs[k+j]){
flag=false;
break;
}
}
if(flag){
return j;
}
}
}
return -1;
}
}

本文介绍了一种简单的字符串匹配算法实现,通过遍历目标字符串并逐一比较字符来查找子串的位置。文章详细展示了如何使用 Java 实现该算法,并给出了具体的代码示例。
376

被折叠的 条评论
为什么被折叠?



