[leetcode]392. Is Subsequence

来源:互联网 发布:ubuntu 删除开机启动 编辑:程序博客网 时间:2024/06/03 12:46

题目:

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 s is 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.

思路:

遍历两个字符串,对比t[j]与s[i],如果相同,则i++,j++;否则对比t[j+1]与s[i]。遍历完t后,如果同时也遍历完s,则s是t的子序列。

code:

class Solution {public:    bool isSubsequence(string s, string t) {        int i = 0, j = 0;        while (i < s.size() && j < t.size()) {            if (s[i] == t[j]) {                i++;                j++;            } else if (s[i] != t[j]) {                j++;            }        }        if (i == s.size()) return true;        else return false;    }};
原创粉丝点击