LeetCode 面试经典150题 392.判断子序列

题目

给定字符串 st ,判断 s 是否为 t 的子序列。

字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace""abcde"的一个子序列,而"aec"不是)。

思路

代码

java 复制代码
class Solution {
    public boolean isSubsequence(String s, String t) {
        // 判断s是否为t的子序列
        if (s.length() == 0) return true;
        for (int i = 0, j = 0; j < t.length(); j++) {
            if (s.charAt(i) == t.charAt(j)) {
                // 若已经遍历完 s ,则提前返回 true
                if (++i == s.length())
                    return true;
            }
        }    
        return false;
    }
}

性能:时间复杂度O(t) 空间复杂度O(1)

相关推荐
GUO_PP10 分钟前
win11英雄联盟打开以后,自动改变音效,开启免提模式的问题修正
人工智能·算法
西安邮电大学19 分钟前
Redis四大经典缓存问题
java·redis·后端·其他·面试
变量未定义~22 分钟前
排列数字、 n-皇后问题
数据结构·算法
BirdenT37 分钟前
20260604紫题训练
c++·算法
元启数宇38 分钟前
疏散指示AI实战:规范布点与路径推演全流程
人工智能·算法
tg:;41 分钟前
Catkin 常用命令
开发语言·c++·算法
暖阳华笺1 小时前
【高频考点】回溯(暴力搜索)
数据结构·c++·算法·回溯法
hunterkkk(c++)1 小时前
学习dijkstra算法(c++)
c++·学习·算法
lightqjx1 小时前
【算法】数据结构_单调队列
数据结构·算法·单调队列
李剑一1 小时前
面试问网络?问到我的软肋了。面试官:讲一下HTTP强缓存与协商缓存
前端·面试