• 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/
  • 相关阅读:
    金蝶数据库执行语句
    金蝶 更新价格分录表触发器
    金蝶触发器,生成条码信息
    SQL从中文中获取拼音首字母
    C语言 typedef用法
    这姑娘漂亮不,说实话,有糖吃
    条码开发的意义在哪里
    ERP开发,重点不在功能
    金蝶出入库数据库表里加字段后出现的问题解决
    解决金蝶未检测到K/3许可文件,并且该账套已超过演示版期限问题
  • 原文地址:https://www.cnblogs.com/wtzmz/p/13387400.html
Copyright © 2020-2023  润新知