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;
    }
}


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

相关文章推荐

淘乐迅为你分享网上购物注意事项

淘乐迅为你分享网上购物注意事项目前在网上购物,已经成为了一种趋势。但要注意几点:1, 首先不要过于相信低的价格,要作对比。如果他们说机子是走私的,官方不可以卖,然后就不能用支付宝,只能银行打款,那都是...

详谈高大上的图片加载框架Glide -源码篇

在上篇文章详谈高大上的图片加载框架Glide中,我们介绍了Glide图片加载框架的使用,通过之前的学习,我们可能已经能熟练的将Glide图片加载框架运用到我们的项目中,但是如果有人问你它是如何加载,工...

android开源图表框架HelloChart的使用 (hellocharts-library-1.5.8.jar)

前言:在android开发过程中,图表是使用比较频繁的功能,目前开源的框架也比较多,如大名鼎鼎的mpChart,WilliamChart等。 不过在使用过程中,各有各的好处,如mpChart在我使用l...

leetCode 115.Distinct Subsequences(子序列距离) 解题思路和方法

Given a string S and a string T, count the number of distinct subsequences of T in S. A subsequen...

Glide之GlideModule

GlideModule接口:为了延迟配置Glide(包括用GlideBuilder设置选项,为Glide注册ModelLoader) 所有的GlideModule实现类必须是public的,并且只拥...

c库函数详解——assert

c库函数详解——assert 函数名: assert功  能: 测试一个条件并可能使程序终止用  法: void assert(int test);程序例:#include #include #inc...

[LeetCode-28] Implement strStr(KMP 字符串匹配)

1、KMP算法的思想 由D.E.Knuth、J.H.Morris和V.R.Pratt共同提出了一个改进算法,消除了Brute-Force算法中串s指针的回溯,完成串的模式匹配。时间复杂度为O(s.c...

28. Implement strStr()(String字符串匹配)

题目: Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if...

Leetcode 28.Implement strStr() 解题报告【C库函数strstr()模拟-字符串中子串首次出现的地址】

28. Implement strStr()   提交网址 https://leetcode.com/problems/implement-strstr/ Total Accepted: ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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