0
点赞
收藏
分享

微信扫一扫

leetcode 28 实现strStr()

墨春 2022-01-20 阅读 79

思路

  1. 首先计算出两个字符串的长度haystack长度为n needle长度为m
  2. 使用两次for循环,第一层for循环的条件是 i+m要小于n,目的保证i加上needle的长度不越界
  3. 之后设定一个标志位flag为true
  4. 执行第二层for循环,j小于m的时候,j++
  5. 当haystack.charAt(i+j) != needle.charAt(j)的时候,说明此位置上,不满足两个字符串重合,则,将标志位设定为false,跳出此次的for循环
  6. 若第二个for循环的条件全部都满足,则直接返回flag的标志位 true,若全部都不满足,则返回-1
class Solution {
    public int strStr(String haystack, String needle) {
        int n = haystack.length(), m = needle.length();
        for(int i = 0; i + m <= n; i++){
            boolean flag = true;
            for(int j = 0; j < m; j++){
                if(haystack.charAt(i + j) != needle.charAt(j)){
                    flag = false;
                    break;
                }
            }
            if(flag) return i;
        }
        return -1;
    }
}

原题链接

举报

相关推荐

0 条评论