/**
* 返回model在target第一次出现的索引
* @param target
* @param model
* @return
*/
public int inStr(String target,String model){
if(target == null) return -1;
if(model == null) return -1;
if("".equals(model)) return 0;
//从a字符串索引为0的地方开始,直到a字符串剩余长度小于b字符串
for(int i = 0;i <= target.length() - model.length();i++){
//b字符串索引
for(int j = 0;j < model.length();j++)
if(target.charAt(i + j) != model.charAt(j)) break; //进行匹配时若有一次不相同,则跳出循环
if (j == model.length() - 1) return i; //若有匹配出字符串
}
return -1;
}
该算法复杂度为o(n²),感兴趣的话推荐KMP算法
字符串匹配算法详解

本文介绍了一个简单的字符串匹配算法实现,并指出其时间复杂度为O(n²)。文章提供了一个具体的Java方法示例,用于查找一个字符串(model)在另一个字符串(target)中首次出现的位置索引。此外,还推荐了更高效的KMP算法供读者进一步学习。
750

被折叠的 条评论
为什么被折叠?



