41 lines
1.4 KiB
Java
41 lines
1.4 KiB
Java
package com.zerroi.leetcode.Three12;
|
||
|
||
public class IsSubsequence {
|
||
public static void main(String[] args) {
|
||
SolutionFirst solutionFirst = new SolutionFirst();
|
||
// boolean res = solutionFirst.isSubsequence("abc", "ahbgdc");
|
||
// boolean res = solutionFirst.isSubsequence("axc", "ahbgdc");
|
||
// boolean res = solutionFirst.isSubsequence("acb", "ahbgdc");
|
||
boolean res = solutionFirst.isSubsequence("", "");
|
||
System.out.println("res = " + res);
|
||
}
|
||
}
|
||
|
||
/*
|
||
* 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。
|
||
|
||
字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。
|
||
|
||
进阶:
|
||
|
||
如果有大量输入的 S,称作 S1, S2, ... , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代码?
|
||
* */
|
||
class SolutionFirst {
|
||
public boolean isSubsequence(String s, String t) {
|
||
int n1 = s.length();
|
||
int j = 0;
|
||
int count = 0;
|
||
for (int i = 0; i < n1; i++) {
|
||
while (j < t.length()) {
|
||
if (s.charAt(i) == t.charAt(j)) {
|
||
count ++;
|
||
j++;
|
||
break;
|
||
}
|
||
j++;
|
||
}
|
||
}
|
||
return count == s.length();
|
||
}
|
||
}
|