前言
本系列文章为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算法后面会补上