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代码
这道题目考察的是字符串的匹配和子序列的判断。
代码中使用两个指针 i
和 j
来分别遍历字符串 s
和 t
。开始时,两个指针都指向字符串的起始位置。
进行循环遍历,当 i
小于 m
(即 s
还没有遍历完)且 j
小于 n
(即 t
还没有遍历完)时,进行以下操作:
- 如果
s[i]
等于t[j]
,那么说明当前字符匹配成功,我们将i
指针向右移动一位。 - 不论匹配是否成功,我们都将
j
指针向右移动一位。
检查 i
是否等于 m
,即是否完成了字符串 s
的遍历。如果是,则返回 True
,否则返回 False
。