第 46 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(沈阳),签到题5题给你一个字符串,问有几个"edgnb"的子串 。用python写
时间: 2024-09-08 19:03:47 浏览: 63
第45届ICPC国际大学生程序设计竞赛亚洲区域赛(沈阳站)题目题解
在第 46 届 ICPC 亚洲区域赛(沈阳)的签到题中,你可以使用 Python 编程语言解决这个问题。题目要求计算给定字符串中有多少个 "edgnb" 的连续子串。这是一个滑动窗口(Sliding Window)的问题,可以使用双指针技术来解决。以下是 Python 代码的一个示例:
```python
def count_substrings(s):
# 初始化计数器和两个指针
count = 0
i, j = 0, 0
# 字符串长度
n = len(s)
# 循环直到右指针移到字符串末尾
while j < n:
# 如果当前子串等于 "edgnb"
if s[j] == 'n':
# 左移左指针,更新子串检查
while i <= j and s[i] != 'e':
i += 1
# 如果找到完整的 "edgnb",计数加一
if i == j - 1:
count += 1
# 右移右指针
j += 1
return count
# 测试函数并获取结果
s = input("请输入字符串:") # 用户输入的字符串
result = count_substrings(s)
print("字符串中 'edgnb' 子串的数量:", result)
阅读全文