zoukankan      html  css  js  c++  java
  • [leetcode] 392. Is Subsequence

    Given a string s and a string t, check if s is subsequence of t.

    You may assume that there is only lower case English letters in both s and t. t is potentially a very long (length ~= 500,000) string, and sis a short string (<=100).

    A subsequence of a string is a new string which is formed from the original string by deleting some (can be none) of the characters without disturbing the relative positions of the remaining characters. (ie, "ace" is a subsequence of "abcde" while "aec" is not).

    Example 1:
    s = "abc", t = "ahbgdc"

    Return true.

    Example 2:
    s = "axc", t = "ahbgdc"

    Return false.

    ---------------------------------------------------

    刚开始没有看清题目以为是普通子字符串的问题,后来写完提交没有通过才发现是不需要连续但是字符顺序必须一致的子字符串问题,只要看清题目这道题就可以很轻松的AC了。

    ---------------------------------------------------

    我的代码如下:

    class Solution {
    public:
        bool isSubsequence(string s, string t) {
            if (s.size() > t.size()) return false;
            int j = 0;
            // i和j分别表示s和t中正在比较的字符的pos
            for (int i = 0; i < s.size(); i++) {
                if (j >= t.size()) return false;
                for (; j < t.size(); j++) {
                    if (s[i] == t[j]) {
                        j++;
                        break;
                    }
                    if (j >= t.size() - 1) return false;
                }
            }
            
            return true;
        }
    };
  • 相关阅读:
    TCP和UDP区别
    session和cookie的区别
    2019 腾讯正式批笔试题题解
    modCount干嘛的
    分布式系统唯一ID生成方案汇总
    分布式数据库名词
    快手第一题
    南柯一梦
    349. 两个数组的交集
    synchronized锁优化
  • 原文地址:https://www.cnblogs.com/zmj97/p/7502489.html
Copyright © 2011-2022 走看看