关于第33讲序列(上)动动手作业0的实现
本作业的答案,版主是用双指针实现的,一般双指针实现都较难理解。我这里提供另外一种方法,感觉要好理解些。#程序实现说明:按顺序比较s中的各字符在t中的索引位置,如果符合从小到大的顺序,说明s即为t的子串
s = input("请输入字符串s:")
t = input("请输入字符串t:")
index=t.find(s)
for c in s:
if t.find(c) < index:
print("字符串 s 不是字符串 t 的子序列")
break
else:
index = t.find(c)
else:
print("字符串 s 是字符串 t 的子序列") 本帖最后由 jackz007 于 2025-10-6 23:39 编辑
s = input("请输入字符串s:")
t = input("请输入字符串t:")
if 0 < len(s) <= len(t) :
index = 0
for c in s :
index = t . find(c , index)
if index < 0 :
print('%s 不是 %s 的子串' % (s , t))
break
else:
print('%s 是 %s 的子串' % (s , t))
【运行实况】:
D:\\\\FishC.substr>python x.py
请输入字符串s:ace
请输入字符串t:abcde
ace 是 abcde 的子串
D:\\\\FishC.substr>python x.py
请输入字符串s:aec
请输入字符串t:abcde
aec 不是 abcde 的子串
D:\\\\FishC.substr> 大神就是大神。因为我只是考虑练习,没去考虑第一步的容错处理。但是每次查找起点没考虑充分,谢谢!
页:
[1]