如何判断一个字符串中是否包含另一个字符串不使用官方API请给出代码
时间: 2023-09-10 18:08:02 浏览: 48
以下是一个使用暴力匹配算法判断一个字符串中是否包含另一个字符串的示例代码,不使用官方API:
```python
def str_contains(str1, str2):
i = 0 # str1的遍历指针
j = 0 # str2的遍历指针
while i < len(str1) and j < len(str2):
if str1[i] == str2[j]: # 如果当前字符匹配,则继续匹配下一个字符
i += 1
j += 1
else:
i = i - j + 1 # 如果不匹配,则i回退到上一次匹配的下一个位置
j = 0
if j == len(str2): # 如果匹配成功,则说明str1包含str2
return True
else:
return False
```
示例代码中的思路和上文中描述的暴力匹配算法一致,具体实现采用了两个指针i和j分别遍历两个字符串。如果当前字符匹配,则两个指针同时往后移动,否则i回退到上一次匹配的下一个位置,j重置为0继续匹配。如果j遍历到了str2的末尾,则说明str1包含str2,返回True;否则,返回False。
相关问题
如何判断一个字符串中是否包含另一个字符串不使用官方API请给出JAVA代码
以下是一个使用暴力匹配算法判断一个字符串中是否包含另一个字符串的示例代码,不使用官方API:
```java
public static boolean strContains(String str1, String str2) {
int i = 0; // str1的遍历指针
int j = 0; // str2的遍历指针
while (i < str1.length() && j < str2.length()) {
if (str1.charAt(i) == str2.charAt(j)) { // 如果当前字符匹配,则继续匹配下一个字符
i++;
j++;
} else {
i = i - j + 1; // 如果不匹配,则i回退到上一次匹配的下一个位置
j = 0;
}
}
if (j == str2.length()) { // 如果匹配成功,则说明str1包含str2
return true;
} else {
return false;
}
}
```
示例代码中的思路和上文中描述的暴力匹配算法一致,具体实现采用了两个指针i和j分别遍历两个字符串。如果当前字符匹配,则两个指针同时往后移动,否则i回退到上一次匹配的下一个位置,j重置为0继续匹配。如果j遍历到了str2的末尾,则说明str1包含str2,返回true;否则,返回false。
判断一个字符串中是否包含另一个字符串,不使用API
可以使用暴力匹配算法来判断一个字符串中是否包含另一个字符串,具体步骤如下:
1. 遍历原字符串,从第一个字符开始逐个匹配。
2. 如果当前字符匹配,则继续匹配下一个字符,直到匹配完整个目标字符串。
3. 如果匹配成功,则说明原字符串包含目标字符串,返回匹配的起始位置。
4. 如果匹配失败,则继续遍历原字符串,直到匹配到字符串末尾。
5. 如果遍历到字符串末尾仍未匹配成功,则说明原字符串不包含目标字符串,返回-1。
该算法的时间复杂度为O(m*n),其中m为目标字符串长度,n为原字符串长度。因此,该算法在处理大规模数据时效率较低,可以考虑优化算法,如KMP算法等。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)