我是靠谱客的博主 狂野冬瓜,最近开发中收集的这篇文章主要介绍392. Is Subsequence,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目:

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

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

Follow up:
If there are lots of incoming S, say S1, S2, ... , Sk where k >= 1B, and you want to check one by one to see if T has its subsequence. In this scenario, how would you change your code?

Credits:
Special thanks to @pbrother for adding this problem and creating all test cases.

 

Example 1:

Input: s = "abc", t = "ahbgdc"
Output: true

Example 2:

Input: s = "axc", t = "ahbgdc"
Output: false

 

Constraints:

  • 0 <= s.length <= 100
  • 0 <= t.length <= 10^4
  • Both strings consist only of lowercase characters.

 

思路:

题意是给定两个字符串,s和t,要求确认s是不是t的子序列,即可以不连续。因此只要找到s是不是按序出现在t中即可。用一个变量当作s的index,然后变量t,如果有相同字母,s的index前进一位,最后只要看index是不是等于s的长度即可,如果相等则说明s完整的出现了,否则没有完整的出现。这里注意如例子中,如果s已经走完, index=3时,此时的s[3]是可以访问的,char应该为'',因为t中没有这个char,所以index会保持3不动直到循环结束。但是如果s[4]是会报错的,因为数组越界。

 

代码:

class Solution {
public:
    bool isSubsequence(string &s, string &t) {
        int index=0;
        for(int i =0;i<t.size();i++)
        {
            if(s[index]==t[i])
                index++;
        }
        return index==s.size();
    }
};

 

最后

以上就是狂野冬瓜为你收集整理的392. Is Subsequence的全部内容,希望文章能够帮你解决392. Is Subsequence所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(74)

评论列表共有 0 条评论

立即
投稿
返回
顶部