判断子序列

题目:给两个字符串s和t,判断s是否是t的子序列

思路:最简单维护两个指针即可,注意边界

public boolean isSubsequence(String s, String t) {
        int n=s.length(),m=t.length();
        if(n==0 &&m!=0) return true;
        if(m==0&&n!=0) return false;
        if(n==0&&m==0) return true;
        int i=0,j=0;
        while(i<n){
            if(s.charAt(i)==t.charAt(j)){
                i++;
                j++;
            }else j++;

            if(j>=m&&i<n||(j==m-1&&i!=n-1))
                return false;
        }

        return true;

    }
时间: 2024-12-03 06:40:13

判断子序列的相关文章

LeetCode | 0392. Is Subsequence判断子序列【Python】

LeetCode 0392. Is Subsequence判断子序列[Easy][Python][双指针] Problem LeetCode 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 t. t is potentially a very long (length

Leetcode392. 判断子序列

链接:https://leetcode-cn.com/problems/is-subsequence 给定字符串 s 和 t ,判断 s 是否为 t 的子序列. 你可以认为 s 和 t 中仅包含英文小写字母.字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100). 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串.(例如,"ace"是"abcde"的一个子序列,而"

二分--判断子序列

题目:https://leetcode-cn.com/problems/is-subsequence/ 给定字符串 s 和 t ,判断 s 是否为 t 的子序列. 你可以认为 s 和 t 中仅包含英文小写字母.字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100). 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串.(例如,"ace"是"abcde"的一个子序列,而&quo

双指针:判断子序列

给定字符串 s 和 t ,判断 s 是否为 t 的子序列. 你可以认为 s 和 t 中仅包含英文小写字母.字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100). 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串.(例如,"ace"是"abcde"的一个子序列,而"aec"不是). 示例 1:s = "abc", t = "

(Java) LeetCode 392. Is Subsequence —— 判断子序列

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 t. t is potentially a very long (length ~= 500,000) string, and sis a short string (<=100). A subsequence of a

LeetCode 792. 匹配子序列的单词数(Number of Matching Subsequences)

792. 匹配子序列的单词数 792. Number of Matching Subsequences 相似题目 392. 判断子序列 原文地址:https://www.cnblogs.com/hglibin/p/10829098.html

Python学习第一天

一.Python的简介 1.什么是python? Python(发音:[ 'paiθ(?)n; (US) 'paiθ?n ]),是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定.这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行. 特点: ①可扩充性.新的内置模块(module)可以用C 或 C++写成,而我们也可为现成的模块加上Python的接口: ②清晰的语言.因为它的作者在设计它的时

字符序列

Problem Description 从三个元素的集合[A,B,C]中选取元素生成一个N个字符组成的序列,使得没有两个相邻字的子序列(子序列长度=2)相同.例:N=5时ABCBA是合格的,而序列ABCBC与ABABC是不合格的,因为其中子序列BC,AB是相同的.对于由键盘输入的N(1<=N<=12),求出满足条件的N个字符的所有序列总数. Input 输入有多组数据,每组数据只有一行为一个整数N. Output 对于每组数据满足条件的N个字符的所有序列总数 Sample Input 4 Sa

hdu 2610

Sequence one Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 445    Accepted Submission(s): 167 Problem Description Search is important in the acm algorithm. When you want to solve a problem by