import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param S string字符串 * @param T string字符串 * @return bool布尔型 */ public boolean isSubsequence (String s, String t) { // write code here if(s.length() == t.length()) { if(s.equals(t)){ System.out.print(true); return true; } else { System.out.print(false); return false; } } if(s.length() > t.length()) { System.out.print(false); return false; } //字符串t的前i个字符中匹配个数 int[] dp = new int[t.length()+1]; for(int i=0; i<t.length()+1; i++) { dp[i] = 0; } int cur = 1;// 2 10 now1","nowcoder1" for(int i=0; i<s.length(); i++) { char c = s.charAt(i); if(cur <= t.length()) { for( ;cur<t.length()+1; cur++) { if(c == t.charAt(cur-1)) { dp[cur] = dp[cur-1] + 1; cur++; break; } else { //不匹配,往后移,当前匹配数等于上个匹配数 dp[cur] = dp[cur-1]; } } } if(cur > t.length()) { break; } } if(dp[t.length()] == s.length()) { System.out.print(true); return true; } System.out.print(false); return false; } }