当前位置: 首页> 健康> 母婴 > 国家信用信息公示系统查询入口_武汉建设工程信息价_百度seo优化是做什么的_seo培训优化

国家信用信息公示系统查询入口_武汉建设工程信息价_百度seo优化是做什么的_seo培训优化

时间:2025/7/11 15:08:25来源:https://blog.csdn.net/coldasice342/article/details/143696597 浏览次数:0次
国家信用信息公示系统查询入口_武汉建设工程信息价_百度seo优化是做什么的_seo培训优化

在这里插入图片描述
算法思想:

  1. 检查特殊情况:首先判断needle是否为空字符串。如果是空字符串,根据题意直接返回0,因为空子串默认在任何字符串的起始位置。

  2. 获取字符串长度:定义mhaystack的长度,nneedle的长度,这样可以避免每次循环时重复计算长度。

  3. 循环遍历主字符串:通过for循环遍历haystack的每个字符位置,从0m - n。这里的m - n是为了确保在主字符串haystack中留下足够的空间容纳子串needle,避免越界。

  4. 截取子串并比较:在每次循环中,截取haystack中从索引i开始、长度为n的子串,并与needle进行比较。通过substring(i, i + n)来获取子串,并使用equals方法判断是否相等。

  5. 返回匹配的索引:如果找到匹配的子串,则返回当前索引i,表示needlehaystack中首次出现的位置。

  6. 未找到返回-1:如果循环结束都未找到匹配的子串,返回-1,表示needle不在haystack中。

复杂度分析

  • 时间复杂度:在最坏情况下,算法需要遍历haystack的每个字符,因此时间复杂度是O((m - n + 1) * n),即O(m * n),其中mhaystack的长度,nneedle的长度。
  • 空间复杂度:使用了常数空间,只在循环中存储了一些变量,因此空间复杂度为O(1)

这个算法相对简单、直观,适用于needlehaystack长度不特别大的情况。

java 实现

class Solution {public int strStr(String haystack, String needle) {int m = haystack.length();int n = needle.length();if(n == 0) return 0;for(int i = 0; i <= m - n; i++) {String substr = haystack.substring(i, i + n);if(substr.equals(needle)) {return i;}}return -1;}
}
关键字:国家信用信息公示系统查询入口_武汉建设工程信息价_百度seo优化是做什么的_seo培训优化

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: