华为机试-字符串子序列(python解法)

给定字符串target和source,判断target是否为source的子序列。

你可以认为target和source 中仅包含英文小写字母,字符串source可能会很长,长度~=500,000,而target是个短字符串,长度<=100。

字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串,例

如,'abc’是’aebycd’的一个子序列,而’ayb’不是。

请找出最后一个序列的起始位置。

示例输入:

abc

abcaybec

示例输出:

3

因为aybec中的abc的a在整个字符串的位置索引是3

转自https://blog.csdn.net/MARS_098/article/details/117756659

target,source = input(),input()
i = len(target) - 1
j = len(source) - 1
index = 0
while i >= 0:      // 逆序逐字符遍历target
    index = 0
    while j >= 0:  // 逆序逐字符遍历source
        if target[i] == source[j]:
            index = j
            j -= 1
            break
        else:
            index = j
            j -= 1
            continue
    i -= 1
print(index)
全部评论
你这个没找到和找到了但最优解是index=0, 这两种的返回的 index都是0
点赞 回复 分享
发布于 2023-03-03 14:55 上海
如果有个字符没找到呢?需要先判断是不是子序列吧
点赞 回复 分享
发布于 2022-06-22 23:51

相关推荐

不愿透露姓名的神秘牛友
06-05 04:14
已编辑
真烦好烦真烦:看着感觉好强啊,这都过不了吗
投递字节跳动等公司7个岗位 面试中的破防瞬间
点赞 评论 收藏
分享
评论
1
8
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务