java简单算法: 实现 strStr()
作者:互联网
问题
- 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。
解决
class Solution {
public int strStr(String haystack, String needle) {
int n1=haystack.length(); //n1为haystack的长度
int n2=needle.length(); //n2为needle取字符
for(int i=0;i+n2<=n1;i++){ //因为如果当i+n2大于n1时,表示n1中必定无n2
boolean flag=true; //作为判断是否完全找到匹配字符的依据
for(int j=0;j<n2;j++){ //比较n2的所有字符是否都能再n1中找到
if(haystack.charAt(i+j)!=needle.charAt(j)){ //如果找不到,直接进行下一次循环
flag=false;
break;
}
}
if(flag){
return i;
}
}
return -1;
}
}
// 这种思想,先假定事件为真,如果出现不满足的就跳过,直到完成全部事件,如果为真就返回真,假就返回假
总结
标签:java,int,needle,算法,字符串,strStr,haystack,n2 来源: https://www.cnblogs.com/zhangsanM/p/16436088.html