Skip to content
This repository has been archived by the owner on Feb 14, 2023. It is now read-only.

392. 判断子序列 #30

Open
AmelloAster opened this issue Jul 27, 2020 · 0 comments
Open

392. 判断子序列 #30

AmelloAster opened this issue Jul 27, 2020 · 0 comments
Labels
Easy 史莱姆 Finished 经验+1 Leetcode daily topic 每日药丸 金金 Code is life

Comments

@AmelloAster
Copy link
Collaborator

AmelloAster commented Jul 27, 2020

392. 判断子序列

给定字符串 s 和 t ,判断 s 是否为 t 的子序列。

你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。

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

示例 1:
s = "abc", t = "ahbgdc"

返回 true.

示例 2:
s = "axc", t = "ahbgdc"

返回 false.

后续挑战 :

如果有大量输入的 S,称作S1, S2, ... , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代码?

解题代码

var isSubsequence = function(s, t) {
    let c = t.split('');
    let cs = s.split('');

    let j = 0;

    for (let i = 0; i < c.length; i++) {
        if (c[i] === cs[j]) {
            j++
        }
    }

    return j === cs.length;
};

解题思路

双指针
遍历 t 的数组
然后s 的索引从0 开始加
遍历结束
判断s 的索引是否等于s的长度

代码效率

执行用时:
100 ms, 在所有 JavaScript 提交中击败了9.52% 的用户
内存消耗:
38 MB, 在所有 JavaScript 提交中击败了100.00%的用户
@AmelloAster AmelloAster added Easy 史莱姆 Finished 经验+1 Leetcode daily topic 每日药丸 金金 Code is life labels Jul 30, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Easy 史莱姆 Finished 经验+1 Leetcode daily topic 每日药丸 金金 Code is life
Projects
None yet
Development

No branches or pull requests

1 participant