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();
|
|||
|
}
|
|||
|
}
|