• leetcode -- 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 的子序列。在这种情况下,你会怎样改变代码?

    菜死我了QAQ,上代码

    class Solution {
    public:
        bool isSubsequence(string s, string t) {
            if(s.length() == 1 && t.length() == 1 && s[0] != t[0])
            {
                return false;
            }
            if(s.length() == 0)
            return true;
            int a = 0;
            for(int i = 0 ; i < s.length() ;  i++)
            {
                
                if( a == 0 && i!=0)
                {
                    return false;
                }
                if( a == t.length())
                {
                    return false;
                }
                for(int j = a ; j < t.length() ; j ++)
                {
                    if(s[i] == t[j])
                    {
                        a = j+1;
                        break;
                    }
                    
                    else{
                        if(j == t.length()-1)
                        {
                            a = 0;
                        }
                        continue;
                    }
    
                
                }
                
             }
             if( a == 0 )
                {
                    return false;
                }
             return true; 
        }
    };

    以上是我写的代码,看了看官方题解.... orz

    class Solution {
    public:
        bool isSubsequence(string s, string t) {
            int n = s.length(), m = t.length();
            int i = 0, j = 0;
            while (i < n && j < m) {
                if (s[i] == t[j]) {
                    i++;
                }
                j++;
            }
            return i == n;
        }
    };
    
    作者:LeetCode-Solution
    链接:https://leetcode-cn.com/problems/is-subsequence/solution/pan-duan-zi-xu-lie-by-leetcode-solution/
  • 相关阅读:
    jmeter-获取数据库中的数据
    jmeter常见报错汇总
    学习目录
    Spring+Spring Security+JSTL实现的表单登陆的例子
    Spring+Spring Security+Maven 实现的一个Hello World例子
    第六章:位置匹配
    第五章:重复匹配
    第四章:使用元字符
    第三章:匹配一组字符
    第二章:匹配单个字符
  • 原文地址:https://www.cnblogs.com/wtzmz/p/13387400.html
Copyright © 2020-2023  润新知