Featured image of post Is Subsequence

Is Subsequence

392. 判断子序列

分析

  1. 初始化指针:
    • 用指针 i 表示字符串 s 的匹配位置,初始为 0
  2. 遍历字符串 t
    • 遍历字符串 t 中的每个字符 c
    • 如果 t 中当前字符与 s[i] 相同,则将指针 i 向后移动
  3. 判断结果:
    • 遍历完成后,若 i == s.size(),说明 s 的所有字符都在 t 中按照顺序找到,返回 true
    • 否则返回 false

时间复杂度

时间复杂度 O(n)

空间复杂度

空间复杂度为 O(1)

C++代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
class Solution {
public:
    bool isSubsequence(string s, string t)
    {
        int i = 0; // 指针 i 表示当前匹配到 s 的第几个字符
        for (char c : t) // 遍历 t 中的每个字符
        {
            // 如果当前字符与 s[i] 匹配,则 i 前进
            if (i < s.size() && s[i] == c)
                i ++;
        }

        // 如果所有 s 的字符都匹配到了,返回 true
        return i == s.size();
    }
};
Built with Hugo
Theme Stack designed by Jimmy