Is Subsequence问题及解法

来源:互联网 发布:linux exp导出数据库 编辑:程序博客网 时间:2024/05/18 21:10

问题描述:

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 tt 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).

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

Return true.

s = "axc"t = "ahbgdc"

Return false.

问题分析:

采用双指针,同时遍历s和t即可。


过程详见代码:

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


原创粉丝点击