云计算百科
云计算领域专业知识百科平台

判断子序列

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

class Solution {
public:
bool isSubsequence(string s, string t) {
// 预处理:如果s长度大于t,直接返回false(子序列长度不能超过原序列)
if(s.length() > t.length())
return false;

int a = 0; // 指针a指向s的当前字符(初始化为0)

// 遍历t的每个字符,同时确保a不越界(未遍历完s)
for(int i = 0; i < t.length() && a < s.length(); i++) {
// 如果当前t的字符与s的当前字符匹配
if(s[a] == t[i]) {
a++; // 指针a后移一位,继续匹配s的下一个字符
}
}

// 最终如果a等于s的长度,说明s的所有字符都按顺序在t中找到
if(a == s.length())
return true;

return false; // 否则返回false
}
};

赞(0)
未经允许不得转载:网硕互联帮助中心 » 判断子序列
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!