leet-code/src/main/java/leetcode/editor/cn/IsSubsequence.java
huangge1199@hotmail.com 8ad7a3764f 392:判断子序列
2021-09-06 19:57:51 +08:00

72 lines
1.8 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//给定字符串 s 和 t ,判断 s 是否为 t 的子序列。
//
// 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而
//"aec"不是)。
//
// 进阶:
//
// 如果有大量输入的 S称作 S1, S2, ... , Sk 其中 k >= 10亿你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代
//码?
//
// 致谢:
//
// 特别感谢 @pbrother 添加此问题并且创建所有测试用例。
//
//
//
// 示例 1
//
//
//输入s = "abc", t = "ahbgdc"
//输出true
//
//
// 示例 2
//
//
//输入s = "axc", t = "ahbgdc"
//输出false
//
//
//
//
// 提示:
//
//
// 0 <= s.length <= 100
// 0 <= t.length <= 10^4
// 两个字符串都只由小写字符组成。
//
// Related Topics 双指针 字符串 动态规划 👍 504 👎 0
package leetcode.editor.cn;
//392:判断子序列
class IsSubsequence {
public static void main(String[] args) {
//测试代码
Solution solution = new IsSubsequence().new Solution();
}
//力扣代码
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
public boolean isSubsequence(String s, String t) {
if (s.length() == 0) {
return true;
}
if (t.length() == 0) {
return false;
}
int index = 0;
for (int i = 0; i < t.length() && index < s.length(); i++) {
if (t.charAt(i) == s.charAt(index)) {
index++;
}
}
return index == s.length();
}
}
//leetcode submit region end(Prohibit modification and deletion)
}