考察的知识点:字符串、双指针;

解答方法分析:

  1. 设定两个指针分别指向字符串s和字符串t的开头,然后逐个比较两个指针指向的字符。
  2. 如果当前字符相等,则同时移动指针;如果不相等,则只移动t的指针。
  3. 如果s的指针移动到了末尾,则说明s是t的子序列,返回true;否则返回false。

所用编程语言:C++;

完整编程代码:↓

class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param s string字符串
     * @param t string字符串
     * @return bool布尔型
     */
    bool isSubsequence(string s, string t) {
        int i = 0, j = 0;
        while (i < s.length() && j < t.length()) {
            if (s[i] == t[j]) {
                i++;
            }
            j++;
        }
        return i == s.length();
    }
};