🚒392. 判断子序列 - 力扣(Leetcode)
2023-1-1
| 2024-1-22
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
password
URL
PublishDate
icon

给定字符串 st ,判断 s 是否为 t 的子序列。
字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace""abcde"的一个子序列,而"aec"不是)。
进阶:
如果有大量输入的 S,称作 S1, S2, ... , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代码?
致谢:
特别感谢 @pbrother 添加此问题并且创建所有测试用例。
示例 1:
示例 2:
提示:
  • 0 <= s.length <= 100
  • 0 <= t.length <= 10^4
  • 两个字符串都只由小写字符组成。

a
h
b
g
d
c
a
1
0
0
0
0
0
b
0
0
1
0
0
0
c
0
0
0
0
0
1

解法1 贪心算法


我们初始化两个指针 i和 j,分别指向 s 和 t 的初始位置。每次贪心地匹配,匹配成功则 i和 j 同时右移,匹配 s的下一个位置,匹配失败则 j右移,i 不变,尝试用 t的下一个字符匹配 s。
最终如果 ii移动到 s 的末尾,就说明 s 是 t的子序列
 

解法2 动态规划

 
  • leetcode
  • 88. 合并两个有序数组 - 力扣(Leetcode)5. 最长回文子串 - 力扣(Leetcode)
    Loading...