算法复杂度其实为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; } }