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;
}
}
// 这种思想,先假定事件为真,如果出现不满足的就跳过,直到完成全部事件,如果为真就返回真,假就返回假
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程