Leetcode 392. Is Subsequence

              一开始没看清楚题目,以为是KMP字符串的模式匹配,还特地翻数据结构的书来复习一下。确实KMP有点难理解。

              不过看清楚之后发现这不是连续子串,只要满足子串的条件就可以了,并不需要连续。所以实现代码也很简单,具体如下:

class Solution {
public:
    bool isSubsequence(string s, string t) {
        if (s.length() == 0) return true ;
        if (t.length() < s.length()) return false ;
        
        int j = 0, i = 0 ;
        int lt = t.length() ;
        int ls = s.length() ;
        
        for (;i < lt; i++) {
        	if (t[i] == s[j]) j++ ;
        	if (j >= ls) return true ;
        }
        return false ;
    }
};

             注意一下两个串的长度的问题就好了。虽然我不知道有没有坑,不过我之前被其他的题目坑过好几次。

             设主串的长度为n,总的时间复杂度就为O(n)。

             虽然这道题目的tag里有“dynamic programming”,但我不知道这和DP有什么关系...

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值