04018: 子串
http://cs101.openjudge.cn/practice/04018/
字符串s和t均由字母组成,若在t中除去一些字母能够得到s,我们就说s是t的一个子串。比如abc就是acbefc的子串 (acbefc去掉第二、第四、第五个字符后就得到abc)
输入
有若干组输入数据,每组一行,分别为字符串s和t,s与t之间用空格隔开
输出
对于一组s与t,若s是t的子串,则输出Yes,否则输出No
样例输入
sequence subsequence
abc acb
VERDI vivaVittorioEmanueleReDiItalia样例输出
Yes
No
Yespython
while True:
try:
# 读取输入的一行数据
s, t = input().split()
# 初始化两个指针,分别指向 s 和 t 的起始位置
i, j = 0, 0
while i < len(s) and j < len(t):
# 如果当前 s 和 t 指向的字符相同,则 s 的指针后移一位
if s[i] == t[j]:
i += 1
# 无论是否匹配,t 的指针都后移一位
j += 1
# 如果 s 的指针移动到了 s 的末尾,说明 s 是 t 的子串
if i == len(s):
print("Yes")
else:
print("No")
except EOFError:
# 遇到文件结束符时退出循环
break