392.判断子序列

简介: 392.判断子序列

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

字符串的一个子序列是原始字符串删除一些字符而不改变剩余字符相对位置形成的新字符串。

解题思路:s是否是 t 的子序列,因此只要能找到任意一种 s 在 t 中出现的方式,即可认为 s 是 t 的子序列。

初始两个指针i 和 j ,分别指向 s 和 t 的初始位置。每次贪心地匹配,匹配成功则 i 和 j 同时右移,匹配 s 的下一个位置,匹配失败则 j 右移,i 不变,尝试用t的下一个字符匹配 s。

最终如果 i 移动到 s 的末尾,就说明 s 是 t的子序列。

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


相关文章
|
资源调度 索引
OBCP考点总结一
OBCP考点总结一
291 0
|
SQL 存储 关系型数据库
OBCP第四章 SQL调优-分区
OBCP第四章 SQL调优-分区
377 0
|
运维 负载均衡 监控
OceanBase数据库认证专家OBCP发布啦!首发期报名培训和认证考试特大优惠!
OBCP 首发期在官网申购考试券并参加考试,享受 5 折优惠!
OceanBase数据库认证专家OBCP发布啦!首发期报名培训和认证考试特大优惠!
|
运维 Linux Windows
【帕鲁更新攻略】如何快速在阿里云上更新游戏服务端版本
幻兽帕鲁游戏服务端版本升级后,需要玩家同步更新才能继续游戏,您可以按照以下操作完成游戏服务端升级。
49570 840
【帕鲁更新攻略】如何快速在阿里云上更新游戏服务端版本
|
Java 应用服务中间件 开发工具
如何使用支付宝沙箱环境支付并公网调用sdk创建支付单服务
如何使用支付宝沙箱环境支付并公网调用sdk创建支付单服务
|
SQL 缓存 调度
OBCP考点总结三
OBCP考点总结三
205 0
|
11月前
|
人工智能 运维 关系型数据库
携手UALink,阿里云磐久AI Infra 2.0服务器亮相2024 OCP全球峰会
阿里云服务器研发受邀和UALink联盟一起,在OCP全球峰会上重点阐述AI服务器Scale UP互连技术领域发展趋势
|
Java
java中强大的时间处理工具:Calendar类(日历类)
`Calendar`类是Java中用来处理日期和时间的类,提供了许多属性来获取日期和时间的不同部分,如年、月、日、小时等。`Calendar`的常用属性包括`YEAR`(年)、`MONTH`(月)、`DATE`/`DAY_OF_MONTH`(日)、`DAY_OF_YEAR`(一年中的第几天)、`DAY_OF_WEEK_IN_MONTH`(一月中第几个星期)、`DAY_OF_WEEK`/`WEEK_OF_MONTH`(星期)等。
206 0
|
SQL 中间件 关系型数据库
OBCA认证考试
OBCA认证考试
618 0
|
存储 Linux Shell
运行 Python 脚本/代码的几种方式
运行 Python 脚本/代码的几种方式