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。
该题考察的知识点是字符串操作和指针的使用。
代码的文字解释如下:
- 声明了两个整数变量
sIndex
和tIndex
,分别用于在字符串s
和t
上移动。 - 使用一个
while
循环,条件是sIndex
小于s
的长度且tIndex
小于t
的长度。 - 在循环内部,比较字符
s.charAt(sIndex)
和t.charAt(tIndex)
是否相等。 - 如果相等,说明找到了
s
中的一个字符,所以将sIndex
向前移动。 - 无论是否相等,我们总是将
tIndex
向前移动,因为我们需要在字符串t
中继续寻找下一个可能匹配的字符。 - 检查是否
sIndex
已经达到了字符串s
的末尾,如果是,则返回true
,表示s
是t
的子序列,否则返回false
。