392. Is Subsequence

来源:互联网 发布:正规的网络博客 编辑:程序博客网 时间:2024/06/11 04:16

392. Is Subsequence           

Given a string s and a stringt, check ifs is subsequence oft.

You may assume that there is only lower case English letters in boths andt.t is potentially a very long (length ~= 500,000) string, ands 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,对s一个一个匹配,匹配到一个字符继续匹配s下一个字符,直到s匹配完,或者t扫描结束。

class Solution {public:bool isSubsequence(string s, string t) {int i, j;i = j = 0;while (i != s.size()) {while (j != t.size()) {if (s[i] == t[j]) {i++;j++;if (i == s.size()) return 1;}else j++;}if (i != s.size()) return 0;}return 1;}};

        虽然写了两个循环,但是其实最多只循环了s.size()+t.size()遍,最少循环2*s.size()遍。

0 0
原创粉丝点击