题目考察的知识点

考察双指针遍历

题目解答方法的文字分析

问的是子序列,即可以不相邻但是需要保证相对顺序,所以使用双指针遍历的形式。当s字符串最后一个遍历完的时候证明s是t的子串。整体过程如下

本题解析所用的编程语言

使用Java语言解答

完整且正确的编程代码

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param s string字符串
     * @param t string字符串
     * @return bool布尔型
     */
  public boolean isSubsequence(String s, String t) {
        int i = 0, j = 0;
        char[] sc = s.toCharArray();
        char[] tc = t.toCharArray();
        while (i < s.length() && j < t.length()) { //按照顺序判断 因为要保证相对顺序不变
            if (sc[i] == tc[j]) {
                i++;
            }
            j++; //t不断向后遍历
        }
        return i >= s.length(); //证明s遍历完 即s是t的子串
    }
}