手撕算法-判断子序列

描述

image.png

分析

双指针。
指针i指向s的第一个字符,指针j指向t的第一个字符。
比较指针i和j位置的字符,如果相等,同时移动指针,i++,j++;
如果i和j位置的字符不相等,只移动j,即j++;

当i先走到s结尾,直接返回true,代表s是t的子序列。
当j走到结尾,看i是不是结尾,如果不是,代表s不是t的子序列。

代码

根据分析写出代码:

public class 判断子序列 {
    public boolean isSubsequence(String s, String t) {
        int i = 0, j = 0;
        while (i< s.length() && j< t.length()) {
            if (s.charAt(i) == t.charAt(j)) {
                // 两个指针位置的元素相等,两个指针都往前移动
                i++;
                j++;
            } else {
                // 指针位置的元素不相等,只移动t序列的指针
                j++;
            }
        }

        // 如果s到达末尾,代表s是t的子序列,否则不是
        return i == s.length();
    }
}

image.png

面试公司

相关推荐

  1. 【leetcode--判断序列

    2024-03-24 15:24:04       30 阅读
  2. 算法刷题笔记 判断序列(C++实现)

    2024-03-24 15:24:04       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-24 15:24:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-24 15:24:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-24 15:24:04       82 阅读
  4. Python语言-面向对象

    2024-03-24 15:24:04       91 阅读

热门阅读

  1. 小白学习微信小程序开发中的用户登录与授权

    2024-03-24 15:24:04       45 阅读
  2. spaCy NLP库的模型的下载、安装和使用说明书

    2024-03-24 15:24:04       37 阅读
  3. 物联网的介绍

    2024-03-24 15:24:04       37 阅读
  4. 【Ubuntu】远程帮助别人安装软件

    2024-03-24 15:24:04       38 阅读
  5. 279. 完全平方数

    2024-03-24 15:24:04       39 阅读
  6. Android中的前台Service

    2024-03-24 15:24:04       39 阅读
  7. 【CSP试题回顾】202303-2-垦田计划(优化)

    2024-03-24 15:24:04       50 阅读
  8. FFMpeg 获取音频音量、提高音量

    2024-03-24 15:24:04       44 阅读
  9. Spring Boot2

    2024-03-24 15:24:04       36 阅读
  10. FFmpeg滤波器创建

    2024-03-24 15:24:04       41 阅读