Javascript程序检查一个字符串是否是另一个字符串的子字符串
给定两个字符串s1 和 s2,判断 s1 是否是 s2 的子字符串。如果是,则返回第一次出现的索引,否则返回 -1。
例子 :
Input: s1 = "for", s2 = "geeksforgeeks"
Output: 5
Explanation:
String "for" is present as a substring
of s2.
Input: s1 = "practice", s2 = "geeksforgeeks"
Output: -1.
Explanation:
There is no occurrence of "practice" in
"geeksforgeeks"
简单方法:想法是从头到尾运行一个循环,并为给定字符串中的每个索引检查是否可以从该索引形成子字符串。这可以通过运行一个遍历给定字符串的嵌套循环来完成,并在该循环中运行另一个循环检查每个索引中的子字符串。
例如,假设有一个长度为 N 的字符串和一个长度为 M 的子字符串。然后运行一个嵌套循环,其中外循环从 0 到 (NM),内循环从 0 到 M。对于非常索引检查是否内循环遍历的子串是否是给定的子串。
Javascript
输出:
Present at index 5
复杂性分析:
- 时间复杂度: O(m * n) 其中 m 和 n 分别是 s1 和 s2 的长度。
使用嵌套循环,外循环从 0 到 NM,内循环从 0 到 M,因此复杂度为 O(m*n)。 - 空间复杂度: O(1)。
因为不需要额外的空间。
一个有效的解决方案是使用 O(n) 搜索算法,如KMP 算法、 Z 算法等。
请参阅有关检查字符串是否为另一个字符串的完整文章以获取更多详细信息!