Problem E: 寻找 abc
[Creator : ]
Description
给定一个仅由小写字母组成的字符串 。
请你找出子串 abc 在 中出现的所有起始位置,按照从前往后的顺序输出。
注意:本题中字符串的下标从 0 开始。
例如:对于字符串 abcabc,子串 abc 在下标 0 和 下标 3 的位置都出现了。
Input
输入一行,包含一个字符串 。
Output
输出一行,包含若干个整数,表示子串
abc 出现的起始下标。整数之间用空格隔开。
如果字符串 中不包含子串 abc,请输出 -1。
Sample Input Copy
abcxyzabc
Sample Output Copy
0 6
HINT
样例 1 解释:
-
第 1 次出现在下标 0 (
abcxyzabc) -
第 2 次出现在下标 6 (abcxyz
abc)
样例 2 解释:
-
字符串中没有完整的
abc子串,输出 -1。
数据范围
- 对于 60% 的数据,满足 。
- 对于 100% 的数据,满足 。
- 字符串 仅包含小写字母。
s.length() 的返回值是无符号整型。进行减法运算(例如 s.length() - 5)时,如果 s.length() - 5 < 0,结果会发生下溢出,变成一个很大的正整数(而不是负数)。在编写循环条件时,可以使用 (int)s.length() - 5 或者 i + 5 <= s.length() 来表示。