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 sIndex = 0; 
    int tIndex = 0; 
    
    while (sIndex < s.length() && tIndex < t.length()) {
      
        if (s.charAt(sIndex) == t.charAt(tIndex)) {
            sIndex++; 
        }
        tIndex++; 
    }
    
  
    return sIndex == s.length();
}
}

编程语言是 Java。

该题考察的知识点是字符串操作和指针的使用。

代码的文字解释如下:

  1. 声明了两个整数变量 sIndex 和 tIndex,分别用于在字符串 s 和 t 上移动。
  2. 使用一个 while 循环,条件是 sIndex 小于 s 的长度且 tIndex 小于 t 的长度。
  3. 在循环内部,比较字符 s.charAt(sIndex) 和 t.charAt(tIndex) 是否相等。
  4. 如果相等,说明找到了 s 中的一个字符,所以将 sIndex 向前移动。
  5. 无论是否相等,我们总是将 tIndex 向前移动,因为我们需要在字符串 t 中继续寻找下一个可能匹配的字符。
  6. 检查是否 sIndex 已经达到了字符串 s 的末尾,如果是,则返回 true,表示 s 是 t 的子序列,否则返回 false