第5关:子串出现的次数
时间: 2024-03-14 12:45:11 浏览: 40
要求编写一个函数,接收两个字符串参数 `str` 和 `sub_str`,返回 `sub_str` 在 `str` 中出现的次数(不允许使用内置函数或库函数)。
你可以按照以下步骤实现:
1. 定义一个计数器 `count`,初始值为 0。
2. 使用 `while` 循环遍历 `str` 中的每个字符,直到 `str` 遍历完。
3. 对于每个字符,如果它与 `sub_str` 的第一个字符相同,则使用 `for` 循环遍历 `sub_str` 中的每个字符,判断 `str` 中的下一个字符是否与 `sub_str` 中的对应字符相同,如果不同则跳出循环,否则继续比较下一个字符。
4. 如果 `sub_str` 中的所有字符都匹配成功,则将 `count` 加 1。
5. 最后返回 `count` 的值即可。
注意,当 `sub_str` 的长度大于 `str` 的长度时,它在 `str` 中不可能出现,直接返回 0。
以下是示例代码:
```python
def count_sub_str(str, sub_str):
if len(sub_str) > len(str):
return 0
count = 0
i = 0
while i < len(str):
if str[i] == sub_str[0]:
match = True
for j in range(1, len(sub_str)):
if i + j >= len(str) or str[i+j] != sub_str[j]:
match = False
break
if match:
count += 1
i += len(sub_str)
else:
i += 1
else:
i += 1
return count
```
你可以用以下代码进行测试:
```python
print(count_sub_str("hello world", "l")) # 3
print(count_sub_str("hello world", "ll")) # 1
print(count_sub_str("hello world", "o")) # 2
print(count_sub_str("hello world", "h")) # 1
print(count_sub_str("hello world", "hello")) # 1
print(count_sub_str("hello world", "world")) # 1
print(count_sub_str("hello world", "python")) # 0
```
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.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)
![](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)