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;
        }
    }
// 这种思想,先假定事件为真,如果出现不满足的就跳过,直到完成全部事件,如果为真就返回真,假就返回假

总结

posted @   new_monkey  阅读(112)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示