编写c++代码给定字符串s和t,判断s是否为t的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。
时间: 2024-05-15 20:14:14 浏览: 94
字符串切割子字符串
可以使用双指针法来解决这个问题,具体步骤如下:
1. 定义两个指针i和j,分别指向s和t的起始位置。
2. 依次比较s和t的每个字符,如果相同则i和j都向后移动一位,否则只移动j。
3. 如果i到达s的末尾,说明s是t的子序列,返回true;如果j到达t的末尾,说明s不是t的子序列,返回false。
以下是完整的C++代码实现:
```c++
bool isSubsequence(string s, string t) {
int i = 0, j = 0;
while (i < s.size() && j < t.size()) {
if (s[i] == t[j]) {
i++;
}
j++;
}
return i == s.size();
}
```
阅读全文