鱼C论坛

 找回密码
 立即注册
查看: 35|回复: 1

[技术交流] 关于第33讲序列(上)动动手作业0的实现

[复制链接]
发表于 昨天 21:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本作业的答案,版主是用双指针实现的,一般双指针实现都较难理解。我这里提供另外一种方法,感觉要好理解些。

#程序实现说明:按顺序比较s中的各字符在t中的索引位置,如果符合从小到大的顺序,说明s即为t的子串

s = input("请输入字符串s:")
t = input("请输入字符串t:")
index=t.find(s[0])
for c in s:
    if t.find(c) < index:
        print("字符串 s 不是字符串 t 的子序列")
        break
    else:
        index = t.find(c)
else:
    print("字符串 s 是字符串 t 的子序列")
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 昨天 23:10 | 显示全部楼层
本帖最后由 jackz007 于 2025-10-6 23:39 编辑
  1. s = input("请输入字符串s:")
  2. t = input("请输入字符串t:")
  3. if 0 < len(s) <= len(t) :
  4.     index = 0
  5.     for c in s :
  6.         index = t . find(c , index)
  7.         if index < 0 :
  8.             print('%s 不是 %s 的子串' % (s , t))
  9.             break
  10.     else:
  11.         print('%s 是 %s 的子串' % (s , t))
复制代码


【运行实况】:
  1. D:\[00.Exercise]\[Python]\[2025]\FishC.substr>python x.py
  2. 请输入字符串s:ace
  3. 请输入字符串t:abcde
  4. ace 是 abcde 的子串

  5. D:\[00.Exercise]\[Python]\[2025]\FishC.substr>python x.py
  6. 请输入字符串s:aec
  7. 请输入字符串t:abcde
  8. aec 不是 abcde 的子串

  9. D:\[00.Exercise]\[Python]\[2025]\FishC.substr>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-7 04:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表