【算法6】-【判断子序列】
算法复杂度其实为O(n + m)
class Solution {
public boolean isSubsequence(String s, String t) {
if (s == null || t == null || s.length() > t.length()) {
return false;
}
char[] sub = s.toCharArray();
char[] parent = t.toCharArray();
int flag = -1;
for (int i = 0; i < sub.length; ++i) {
int temp = flag;
for (int j = flag >= 0 ? flag : 0; j < parent.length; ++j) {
if (sub[i] == parent[j] && j > flag) {
flag = j;
break;
}
}
if (temp == flag) {
return false;
}
}
return true;
}
} class Solution {
public boolean isSubsequence(String s, String t) {
int n = s.length(), m = t.length();
int i = 0, j = 0;
while (i < n && j < m) {
if (s.charAt(i) == t.charAt(j)) {
i++;
}
j++;
}
return i == n;
}
} 
