描述 输入一个字符串str和一个子串s,统计str中子串s的个数。 输入 输入数据有2行,第一行为str,第二行为s,字符串长度不超过128。 输出 输出子串的个数 样例输入 sdf$$$sdf$$ sdf 样例输出 2 不使用count函数
时间: 2024-12-26 07:28:41 浏览: 3
要统计字符串 `str` 中子串 `s` 的个数,而不使用 Python 内置的 `count()` 函数,你可以遍历整个 `str`,每次检查是否连续匹配到 `s`。这里我们可以采用滑动窗口的思想,从左到右逐字符移动一个长度为 `len(s)` 的窗口,每移动一步就判断窗口内的子串是否与 `s` 相等。
以下是一个简单的 Python 代码示例:
```python
def count_substring(str, s):
count = 0
window_start = 0
# 遍历 str,直到窗口超出 s 的范围
for window_end in range(len(str)):
if str[window_end:window_end + len(s)] == s: # 检查窗口内子串是否等于 s
count += 1
else:
while window_start < window_end and str[window_start:window_start + len(s)] != s: # 移动窗口直到找到第一个不匹配的地方
window_start += 1
return count
# 示例输入
str_example = "sdf$$$sdf$$"
substr_example = "sdf"
# 调用函数并打印结果
result = count_substring(str_example, substr_example)
print(result)
```
当你运行这段代码,它会输出 `2`,正如样例所示。
阅读全文