zoukankan      html  css  js  c++  java
  • LeetCode(28) - Implement strStr()

      这道题事实上就是编译一个String.indexOf()的函数,所以这道题直接用s1.indexOf(s2)便可解。但是这样做没有什么意义, 所以我们还是老老实实的一个一个遍历,当碰到首字母相同的时候,就判断加下来的字符串和needle是否相同,如果不相同,继续遍历。

      代码如下:

     1 public class Solution {
     2     public int strStr(String haystack, String needle) {
     3         if (needle.length() == 0) return 0;
     4         for (int i = 0; i < haystack.length() - needle.length() + 1; i++) {
     5             //如果首字母相同,check接下来needle长度的字符串是否和needle相同。
     6             if (haystack.charAt(i) == needle.charAt(0)) {
     7                 if (checkStr(haystack,i,needle)) return i;
     8             }
     9         }
    10         return -1;
    11     }
    12     
    13     private boolean checkStr(String haystack, int index, String needle) {
    14         int needleIndex = 0;
    15         while (needleIndex < needle.length()) {
    16             if (haystack.charAt(index) != needle.charAt(needleIndex)) return false;
    17             else {
    18                 index++;
    19                 needleIndex++;
    20             }
    21         }
    22         return true;
    23     }
    24 }
  • 相关阅读:
    flutter setInitialRoute: 不生效
    mac os Catalina beta andriod studio crash
    Flutter 集成到现有iOS工程
    理解git
    selenium(一)--selenium 家族
    异常(一)
    java设计模式--创建型模式(一)
    理解JAVA虚拟机(下)
    mockito框架
    三次握手与四次释放
  • 原文地址:https://www.cnblogs.com/kepuCS/p/5282923.html
Copyright © 2011-2022 走看看