1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| class Solution { public boolean isSubsequence(String s, String t) { int m = t.length(), n = s.length();
boolean[][] dp = new boolean[m + 1][n + 1]; dp[0][0] = true; for (int i = 1; i <= m; i++) { dp[i][0] = true; } for (int j = 1; j <= n; j++) { dp[0][j] = false; }
for (int i = 1; i <= m; i++) { char a = t.charAt(i - 1); for (int j = 1; j <= n; j++) { char b = s.charAt(j - 1);
if (a == b) { dp[i][j] = dp[i - 1][j - 1]; dp[i][j] |= dp[i - 1][j]; } else { dp[i][j] = dp[i - 1][j]; } } }
return dp[m][n]; } }
|