leetCode 28.Implement strStr() (实现字符串匹配函数) 解题思路和方法

原创 2015年07月07日 21:22:31
Implement strStr() 

Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.


思路:此题很简单,就是实现strStr()函数。找到返回起始值,找不到返回-1。

代码如下:

public class Solution {
    public int strStr(String haystack, String needle) {
        int lenB = needle.length();//needle的长度
        if(lenB == 0){
            return 0;
        }
        int lenA = haystack.length();//haystack的长度
        if(lenA == 0){
            return -1;
        }
        
        if(lenA < lenB){//子串长度大,肯定不存在
            return -1;
        }

        for(int i = 0; i < lenA; i++){
            if(lenA - i < lenB){//如果以后的数字没有lenB大,直接返回
                break;
            }
            if(haystack.charAt(i) == needle.charAt(0)){//如果a的某个字符与b的首字符相等
                //循环判断以后的数字是否对应相等
                boolean isStr = true;
                for(int j = i;j - i < lenB;j++){
                    if(haystack.charAt(j) != needle.charAt(j-i)){//如果不相等字符,直接返回
                        isStr = false;//标记值记为false
                       break;
                    }
                }
                if(isStr){
                    return i;
                }
            }
        }
        return -1;
    }
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

Leetcode解题思路总结(Easy)

近来走上了Leetcode刷题之路,不过刷题背后更重要的是思路,掌握了方法,举一反三融会贯通。故在此我总结每道题的解题思路,按照题目从简单到难的顺序来列举。 292 Nim Game,传说中的一行...
  • luoshengkim
  • luoshengkim
  • 2015年12月17日 17:12
  • 3070

Leetcode解题思路总结(Medium)

136. Single Number 思路:一个数组中,每个数字都出现了2次,只有一个数字出现了1次,要求找到那个数。我一开始想到的方法是用扫描数组添加到set中,如果出现了2次就从set中erase...
  • luoshengkim
  • luoshengkim
  • 2016年02月15日 15:37
  • 942

leetcode解题总结(持续更新)

树型:DFS或BFS(不够+状态存储,缩短时间)(如数位DP,就是DFS+状态存储) 链表:多用two pointer 无序数组:hash映射(O(1),map,set等),并查集,字典树tire 有...
  • ChinaJane163
  • ChinaJane163
  • 2016年09月21日 20:53
  • 664

leetcode | Implement strStr() | 实现字符串查找函数

Implement strStr() : https://leetcode.com/problems/implement-strstr/Returns the index of the first o...
  • quzhongxin
  • quzhongxin
  • 2015年07月05日 15:29
  • 1582

[LeetCode]91.Decode Ways

A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' ...
  • SunnyYoona
  • SunnyYoona
  • 2015年06月23日 22:54
  • 1739

c++中strstr函数的几种实现方法

函数说明: 包含文件:string.h 函数名: strstr 函数原型:extern char *strstr(char *str1, char *str2); 功能:从字符串str1中查找...
  • Baoge_leopard
  • Baoge_leopard
  • 2014年10月04日 15:42
  • 2120

字符串操作函数之strstr和strpbrk

在字符串操作函数中,除了经常用的连接、拷贝、求长度等,今天我们来说说可以在一个字符串里查找另外一个字符串的函数:strstr和strpbrk函数。定义如下: #include char *str...
  • magiclyj
  • magiclyj
  • 2017年05月22日 20:13
  • 768

LeetCode Weekly Contest 35解题思路

LeetCode Weekly Contest 35解题思路 详细代码可以fork下Github上leetcode项目,不定期更新。 赛题本次周赛主要分为以下4道题: Leetcode 605. ...
  • u014688145
  • u014688145
  • 2017年06月04日 16:34
  • 921

【LeetCode】43. Multiply Strings 大数相乘算法

【LeetCode】43. Multiply Strings 大数相乘算法题目要求:Given two numbers represented as strings, return multiplic...
  • u013583717
  • u013583717
  • 2016年04月04日 10:30
  • 681

[leetcode:python]28.Implement strStr()

题目:实现strStr() Returns the index of the first occurrence of needle in haystack, or -1 if needle is n...
  • NXHYD
  • NXHYD
  • 2017年05月10日 19:40
  • 145
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetCode 28.Implement strStr() (实现字符串匹配函数) 解题思路和方法
举报原因:
原因补充:

(最多只允许输入30个字)