LeetCode算法题2:求字符串b在字符串a中的起始下标


前言

      本系列文章为leetCode刷题笔记,仅供参考。

一、题目描述

暂无

二、思路

1.朴素匹配

      对字符串a遍历,依次判断是否存在字串b,时间复杂度为O(n*m),空间复杂度为O(1)。()
      代码如下:

class Solution {
    
    
    public int findSubString(String a,String b)//找字串b在a中的起始下标
    {
    
    
        if(b.isEmpty())//对空字符串的判定
            return 0;
        for(int i=0;i<=a.length()-b.length();i++)//结束条件并非为a.length()
        {
    
    
            int j;
            for(j=0;j<b.length();j++)
            {
    
    
                if(a.charAt(i+j)!=b.charAt(j))
                    break;
            }
            if(j==b.length())
                return i;
        }
        return -1;
    }
}

1.1Java直接实现

      采用String的IndexOf函数来实现:

class Solution {
    
    
    public int findSubString(String a,String b)//找字串b在a中的起始下标
    {
    
    
        if(b.isEmpty())//对空字符串的判定
            return 0;
        return a.indexOf(b);
}

总结

      未完,关于KMP算法后面会补上

猜你喜欢

转载自blog.csdn.net/Little_ant_/article/details/121214709
今日推荐