栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python解决:有效子串

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python解决:有效子串

题目:有效子串

规则:子串全部字符都在父串中存在,且顺序与子串字符顺序一致(可以不连续)。
比如:ace 是 abcde的有效子串
输入:两行字符串,第一行为子串,第二行为父串,字符串均为小写英文字母
输出:如果是有效子串,请输出子串最后一个字符在父串中的位置,如果不是有效子串,请输出-1。如果子串中有非英文字符。直接输出-1
举例:
输入:
ace
abcde
输出:
4
举例:
输入:
ad
dac
输出:
-1

解题思路

第一步:
由于需要找符合要求的子串且输出子串最后一个元素在父串中的位置,第一步先将子串反转,从串的查询来说,反转后最后一个元素的位置便在第一位了,便于查找以及后续反转后子串中第二个第三个元素
第二步:
将每次子串在父串中找到的元素的位置作以截取,由于子串在父串中的位置顺序不可变,转换后的子串中第一个找到的元素的位置必然父串中最后的一个符合要求的元素位置
第三步:
循环找到符合的子串并截取位置更新父串,计算父串长度,选择最大的父串位置的值,即所求

代码实现
target1 = input()
source = input()
target = target1[::-1]
ans = 0
for x in target:
    if x.isalpha() is False:
        ans = -1
        break
    else:
        if x in source:
            source = source[:source.rfind(x)]
            ans = max(ans, len(source))
        else:
            ans = -1
            break
print(ans)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/969172.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号