3223: 05-26-A02-查找子串(L4)

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:2 解决:2

题目描述

利用string类型字符串的find()函数在一个字符串s中查找另一个字符串s1,输出每个匹配的位置,如果不存在,则输出no。

 以样例数据1为例,s为"abcdabcdabcd",s1为"bcd",在s里能找到s1,此时s1称为s的子串。所谓s的子串,就是由s的连续元素构成的一个字符串。

此外,由于在字符串中,元素的下标是从0开始计的,因此,这个样例数据,匹配位置依次为1, 5, 9。 string类型的字符串提供了find函数,可以在字符串中查找字符/字符串。

find函数有多个版本,本题需要用的是以下find函数。 int find(string s1, int pos); //从pos开始查找字符串s1在字符串s中的位置,成功时返回所在位置,失败时返回string::npos的值(npos是一个常量,用来表示不存在的位置)

输入

输入数据占两行,第一行为字符串s,第二行为字符串s1。这两个字符串均不含空格。

输出

依次输出s1在s中的所有匹配位置,用空格隔开;如果在s中查找不到s1,输出no。

样例输入 复制

abcdabcdabcd
bcd

样例输出 复制

1 5 9

提示

## 样例 #1

### 样例输入 #1

```
abcdabcdabcd
bcd
```

### 样例输出 #1

```
1 5 9
```

## 样例 #2

### 样例输入 #2

```
abcdabcdabcd
acd
```

### 样例输出 #2

```
no
```

## 样例 #3

### 样例输入 #3

```
aaaaaa
aaa
```

### 样例输出 #3

```
0 1 2 3
```