以下功能:输入两个字符串s1和s2,在字符串s1中检索指定字符串s2,获取所有匹配字符串的起始字符位置。 输入格式: 输入两个字符串,每行输入一个。 输出格式: 每行输出一个匹配字符串的起始字符位置。
时间: 2024-10-20 12:18:19 浏览: 133
为了实现这个功能,你可以使用Python中的内置函数`str.find()`或列表推导式结合循环来遍历每个匹配的位置。这里是Python代码的一个示例:
```python
def find_substrings(s1, s2):
# 使用find()函数查找所有子串s2在s1中的位置
positions = [i for i in range(len(s1)) if s1.startswith(s2, i)]
return positions
# 示例输入
s1 = input("请输入第一个字符串s1:")
s2 = input("请输入第二个字符串s2:")
# 调用函数并输出结果
result = find_substrings(s1, s2)
for pos in result:
print(f"{s2} 在 {s1} 的起始位置是:{pos}")
# 如果s2未在s1中找到,则输出空列表或相应提示
if not result:
print(f"'{s2}' 在 '{s1}' 中未找到。")
```
每次调用`s1.startswith(s2, i)`会检查从索引`i`开始,s1是否以s2开头。如果找到了匹配,就将该位置添加到`positions`列表中。
相关问题
题目内容:编写程序实现以下功能:输入两个字符串s1和s2,在字符串s1中检索指定字符串s2,获取所有匹配字符串的起始字符位置。 输入格式: 输入两个字符串,每行输入一个。 输出格式:每行输出一个匹配字符串的起始字符位置。 输入样例: cat dog cat dog cat dog cat cat 输出样例: 0 8 16 24
好的,我已经明白了你的要求。下面是一个简单的 Python 代码示例,可以实现你所需要的功能:
```python
s1 = input().strip()
s2 = input().strip()
start = 0
while True:
index = s1.find(s2, start)
if index == -1:
break
print(index)
start = index + 1
```
你可以将上述代码复制到 Python 环境中运行,输入两个字符串,即可得到匹配字符串的起始字符位置。
注意,这段代码只能匹配 s1 中所有的 s2,并不能匹配 s1 中 s2 的个数。如果需要匹配 s2 的个数,可以修改代码,如下所示:
```python
s1 = input().strip()
s2 = input().strip()
start = 0
count = 0
while True:
index = s1.find(s2, start)
if index == -1:
break
print(index)
count += 1
start = index + 1
print("匹配字符串的个数:", count)
```
这样,就可以输出匹配字符串的个数了。
阅读全文