import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param s string字符串
     * @param t string字符串
     * @return bool布尔型
     */
    public boolean isSubsequence (String s, String t) {
        // write code here
        int m = s.length();
        int n = t.length();
        int i = 0, j = 0;

        while (i < m && j < n) {
            if (s.charAt(i) == t.charAt(j)) {
                i++;
            }
            j++;
        }

        return i == m;
    }
}

Java代码

这道题目考察的是字符串的匹配和子序列的判断。

代码中使用两个指针 ij 来分别遍历字符串 st。开始时,两个指针都指向字符串的起始位置。

进行循环遍历,当 i 小于 m(即 s 还没有遍历完)且 j 小于 n(即 t 还没有遍历完)时,进行以下操作:

  • 如果 s[i] 等于 t[j],那么说明当前字符匹配成功,我们将 i 指针向右移动一位。
  • 不论匹配是否成功,我们都将 j 指针向右移动一位。

检查 i 是否等于 m,即是否完成了字符串 s 的遍历。如果是,则返回 True,否则返回 False