Every day a leetcode
题目来源:392. 判断子序列
解法1:遍历
指针i指向字符串s的开头,指针j指向字符串t的开头。
匹配字符s[i]和t[j],匹配成功则i++,j++;否则j++。
最后判断是否把s遍历完即可。
代码:
/*
* @lc app=leetcode.cn id=392 lang=cpp
*
* [392] 判断子序列
*/
// @lc code=start
class Solution
{
public:
bool isSubsequence(string s, string t)
{
int i = 0, j = 0;
int m = s.size(), n = t.size();
while (i < m && j < n)
{
if (s[i] == t[j])
{
i++;
j++;
}
else
{
j++;
}
}
return i == m;
}
};
// @lc code=end
结果:
复杂度分析:
时间复杂度:O(m+n),其中m是字符串s的长度,n是字符串t的长度。
空间复杂度:O(1)。