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