输入两个串s1,s2,找出s2在s1中所有出现的位置。从小到大输出s2在s1中所有的出现位置。位置从0开始算,如果s2没出现过,输出 "no"。两个子串的出现不能重叠。
时间: 2023-06-03 07:01:34 浏览: 147
判定一个串是否为另一个串的子串
好的,这是一个字符串匹配的问题。我可以为您提供一个简单的解决方案:首先,我们可以依次遍历s1中每一个位置,并对于每一个位置,判断s1从该位置开始的子串是否与s2匹配。如果匹配成功,我们就记录下该位置,并跳过s2的长度继续遍历s1。最后,我们将所有记录的位置从小到大输出即可。如果s2未在s1中出现过,我们直接输出"no"。
下面是一个示例代码实现:
```python
def match_positions(s1, s2):
positions = []
for i in range(len(s1) - len(s2) + 1):
if s1[i:i+len(s2)] == s2:
positions.append(i)
i += len(s2) - 1
if not positions:
return "no"
return positions
```
您可以将s1和s2作为参数传递给这个函数,它会返回s2在s1中所有出现的位置。如果返回的是"no",则说明s2未在s1中出现过。
阅读全文