给定字符串 s 和 t ,判断 s 是否为 t 的子序列。
字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。

class Solution {
public:
bool isSubsequence(string s, string t) {
if(s==t) return true;
if(s.size()>t.size()) return false;
for( int i = 0,j = 0;i<s.size();)
{
if(s[i]==t[j])
{
i++;
j++;
}
else
{
while(s[i]!=t[j]&&j<t.size())
{
j++;
}
if( j < t.size()-1||(i==s.size()-1 && j==t.size()-1))
{
i++;
j++;
}
else
return false;
}
}
return true;
}
};
思路:有点乱
给定两个字符串s和t,该问题要求判断s是否为t的子序列。通过遍历s和t,当s中的字符与t匹配时移动对应指针,否则跳过t中的字符,直至遍历完s。如果所有s的字符都在t中找到且顺序一致,则返回true,否则false。
483

被折叠的 条评论
为什么被折叠?



