当前位置: 首页 > news >正文

LeetCode150道面试经典题--判断子序列(简单)

1.题目

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

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

进阶:

如果有大量输入的 S,称作 S1, S2, ... , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代码?

2.示例


3.思路

双指针:
设置两个指针,一个T指针指向T并且遍历t,另一个有效位指针Sindex指向s初始位置,当数组中两者值相等时候S指针下移一位,当有效位指针一旦到达s字符串长度则返回true,否则返回false

4.代码

LeetCode代码:

class Solution {public boolean isSubsequence(String s, String t) {int sIndex = 0;if(s.length() == 0){return true;}for (int i=0;i<t.length();i++){if (s.charAt(sIndex)==t.charAt(i)){sIndex++;if(sIndex == s.length()){return true;}}}return false;}
}

 案例详细代码:

package LeetCode11;public class javaDemo {public static void main(String[] args) {String s = "a";String t = "ahbgdc";boolean flag = false;//        S字符串有效位指针int sIndex = 0;
//        判断是否为特殊情况即s若为空,则直接输出trueif (s.equals("")){System.out.println(true);}else {
//            不是特殊情况则进行双指针判断for (int i=0;i<t.length();i++){
//                判断是否值相等if (s.charAt(sIndex)==t.charAt(i)){sIndex++;
//                    如果sIndex遍历完,也就意味着存在子序列输出flag并即使跳出防止越界if (sIndex == s.length()){flag = true;break;}}}}System.out.println(flag);}
}

时间复杂度为O(n),空间复杂度为O(1)

相关文章:

LeetCode150道面试经典题--判断子序列(简单)

1.题目 给定字符串 s 和 t &#xff0c;判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些&#xff08;也可以不删除&#xff09;字符而不改变剩余字符相对位置形成的新字符串。&#xff08;例如&#xff0c;"ace"是"abcde"的一个子序…...

kubeadml 安装 k8s

目录 一&#xff1a;kubeadml 安装 k8s 1、网络环境 2、 环境准备 3、 所有节点安装docker 4、所有节点安装kubeadm&#xff0c;kubelet和kubectl ​5、部署K8S集群 6、测试 二&#xff1a; 部署 Dashboard 一&#xff1a;kubeadml 安装 k8s 1、网络环境 master&am…...

考研C语言进阶题库——更新16-20题

目录 16计算t11/2...1/n-11/n 17计算1997&#xff01; 18计算t1-122-133-...-1nn 19相传国际象棋是古印度舍罕王的宰相达依尔发明的.舍罕王十分喜爱象棋,决定让宰相自己选择何种赏赐. 这位聪明的宰相指着8*8共64格的象棋说:陛下,请您赏给我一些麦子吧. 就在棋盘的第1格放1粒…...

【变形金刚01】attention和transformer所有信息

图1.来源&#xff1a;Arseny Togulev在Unsplash上的照片 一、说明 这是一篇 长文 &#xff0c;几乎讨论了人们需要了解的有关注意力机制的所有信息&#xff0c;包括自我注意、查询、键、值、多头注意力、屏蔽多头注意力和转换器&#xff0c;包括有关 BERT 和 GPT 的一些细节。因…...

面试热题(路径总和II)

给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 在这里给大家提供两种方法进行思考&#xff0c;第一种方法是递归&#xff0c;第二种方式使用回溯的方式进行爆…...

测试 tensorflow 1.x 的一个demo 01

tensorflow 1.0的示例代码 demo_01.py import tensorflow as tf import os os.environ[TF_CPP_MIN_LOG_LEVEL]2def tf114_demo():a 3b 4c a bprint("a b in py ",c)a_t tf.constant(3)b_t tf.constant(4)c_t a_t b_tprint("TensorFlow add a_t b_t &…...

达蒙DM数据库使用经验

DM表/字段注释 注&#xff1a;dm数据库无法在建表的同时为字段名添加注释 //为表添加注释 comment on table 库名.表名 is 表注释; //为表字段添加注释 comment on column 库名.表名.列名 is 列注释;DM查询错误&#xff1a;无效的表或视图 1&#xff0c;确认表一定存在 2&am…...

Redis—集群

目录标题 主从复制第一次同步命令传播分担主服务器压力增量复制总结面试题什么是Redis主从复制Redis主从复制的原理Redis主从复制的优点Redis主从复制的缺点Redis主从复制的配置步骤Redis主从复制的同步策略主从节点是长还是短连接判断某个节点是否正常工作主从复制架构中&…...

【C语言】数据在内存中的存储详解

文章目录 一、什么是数据类型二、类型的基本归类三、 整型在内存中的存储1.原码、反码、补码2.大小端(1)什么是大小端(2)为什么会有大小端 四、浮点型在内存中的存储1. 浮点数存储规则 五、练习1.2.3.4.5.6.7. 一、什么是数据类型 我们可以把数据类型想象为一个矩形盒子&#x…...

PIC单片机配置字的设置

PIC单片机配置字的设置 PIC系列单片机,其芯片内部大都设置有一个特殊的程序存储单元,地址根据不同的单片机而定,此存储单元用来由单片机用户自由配置或定义单片机内部的一些功能电路单元的性能选项,所以被称之为系统配置字。目前PIC单片机系统配置字的方法有两种,一种是利…...

JavaWeb-Servlet服务连接器(一)

目录 1.Servlet生命周期 2.Servlet的配置 3.Servlet的常用方法 4.Servlet体系结构 5.HTTP请求报文 6.HTTP响应报文 1.Servlet生命周期 Servlet&#xff08;Server Applet&#xff09;是Java Servlet的简称。其主要的功能是交互式地浏览和修改数据&#xff0c;生成一些动态…...

新华三超融合态势感知标准版

产品概述&#xff1a; H3C SecCenter CSAP-XS 超融合态势感知一体机产品集合了态势感知和安全流量分析探针设备能无需复杂配置&#xff1b;态势感知平台具备强大的安全分析和可视化呈现功能&#xff1b;同时具备远程专家会诊功能&#xff0c;通过云端协同实现外部安全服务资源的…...

AutoSAR系列讲解(深入篇)13.2-Mcal Port配置

目录 一、配置界面 二、通用配置 1、ConfigVariant 2、PortSafety 3、PortGeneral 三、Port配置集合...

Java旋转数组中的最小数字(图文详解版)

目录 1.题目描述 2.题解 分析 具体实现 方法一&#xff08;遍历&#xff09;&#xff1a; 方法二&#xff08;排序&#xff09;&#xff1a; 方法三&#xff08;二分查找&#xff09;&#xff1a; 1.题目描述 有一个长度为 n 的非降序数组&#xff0c;比如[1,2,3,4,5]&a…...

Android 13 Hotseat定制化修改——005 hotseat图标禁止形成文件夹

目录 一.背景 二.方案 一.背景 由于需求是需要自定义修改Hotseat,所以此篇文章是记录如何自定义修改hotseat的,应该可以覆盖大部分场景,修改点有修改hotseat布局方向,hotseat图标数量,hotseat图标大小,hotseat布局位置,hotseat图标禁止形成文件夹,hotseat图标禁止移动…...

插入、希尔、归并、快速排序(java实现)

目录 插入排序 希尔排序 归并排序 快速排序 插入排序 排序原理&#xff1a; 1.把所有元素分为两组&#xff0c;第一组是有序已经排好的&#xff0c;第二组是乱序未排序。 2.将未排序一组的第一个元素作为插入元素&#xff0c;倒序与有序组比较。 3.在有序组中找到比插入…...

怎么把图片表格转换成word表格?几个步骤达成

在处理文档时&#xff0c;图片表格的转换是一个常见的需求。而手动输入表格是非常耗时的&#xff0c;因此&#xff0c;使用文本识别软件来自动转换图片表格可以大大提高工作效率。在本文中&#xff0c;我们将介绍如何使用OCR文字识别技术来将图片表格转换为Word表格。 OCR文字识…...

多线程与高并发--------阻塞队列

四、阻塞队列 一、基础概念 1.1 生产者消费者概念 生产者消费者是设计模式的一种。让生产者和消费者基于一个容器来解决强耦合问题。 生产者 消费者彼此之间不会直接通讯的&#xff0c;而是通过一个容器&#xff08;队列&#xff09;进行通讯。 所以生产者生产完数据后扔到…...

前端-NVM,Node.js版本管理

NVM&#xff08;Node Version Manager&#xff09;是一个用于管理Node.js版本的工具&#xff0c;主要用于前端开发中。它允许开发者同时安装和切换不同版本的Node.js&#xff0c;以满足不同项目对Node.js版本的需求。 使用NVM可以带来以下几个好处&#xff1a; 多版本管理&…...

React - useEffect函数的理解和使用

文章目录 一&#xff0c;useEffect描述二&#xff0c;它的执行时机三&#xff0c;useEffect分情况使用1&#xff0c;不写第二个参数 说明监测所有state&#xff0c;其中一个变化就会触发此函数2&#xff0c;第二个参数如果是[]空数组&#xff0c;说明谁也不监测3&#xff0c;第…...

零基础打造专业直播间:obs-backgroundremoval插件实战指南

零基础打造专业直播间&#xff1a;obs-backgroundremoval插件实战指南 【免费下载链接】obs-backgroundremoval An OBS plugin for removing background in portrait images (video), making it easy to replace the background when recording or streaming. 项目地址: http…...

Liquid AI LFM2.5-VL-1.6B代码实例:Python调用OCR+图文生成双任务Pipeline

Liquid AI LFM2.5-VL-1.6B代码实例&#xff1a;Python调用OCR图文生成双任务Pipeline 1. 模型概述 LFM2.5-VL-1.6B是Liquid AI发布的轻量级多模态模型&#xff0c;专为端侧和边缘设备设计。这个1.6B参数的视觉语言模型&#xff08;1.2B语言400M视觉&#xff09;能够在低显存环…...

RVC音频转换又爆显存?手把手教你用PYTORCH_CUDA_ALLOC_CONF调优,告别CUDA OOM

RVC音频转换显存优化实战&#xff1a;用PYTORCH_CUDA_ALLOC_CONF彻底解决CUDA OOM问题 深夜的音频工作室里&#xff0c;Alex第15次按下RVC模型的推理按钮&#xff0c;屏幕上再次跳出刺眼的红色报错&#xff1a;"RuntimeError: CUDA out of memory"。作为专业音效师&a…...

5分钟上手Zotero-Style:让文献管理焕然一新的终极美化插件

5分钟上手Zotero-Style&#xff1a;让文献管理焕然一新的终极美化插件 【免费下载链接】zotero-style Ethereal Style for Zotero 项目地址: https://gitcode.com/GitHub_Trending/zo/zotero-style 还在为Zotero单调的界面发愁吗&#xff1f;想让学术文献管理变得既美观…...

为什么你的断点不生效?Chrome调试器断点机制完全解析

为什么你的断点不生效&#xff1f;Chrome调试器断点机制完全解析 【免费下载链接】vscode-chrome-debug Debug your JavaScript code running in Google Chrome from VS Code. 项目地址: https://gitcode.com/gh_mirrors/vs/vscode-chrome-debug 在前端开发中&#xff0…...

大语言模型(LLM)核心原理与应用实践指南

1. 大语言模型入门指南&#xff1a;从零理解LLM的核心原理作为一名长期跟踪自然语言处理技术发展的从业者&#xff0c;我见证了大型语言模型(LLM)如何从实验室走向大众视野。记得2018年第一次接触GPT-2时&#xff0c;需要专门配置计算环境才能运行简化版模型&#xff0c;而今天…...

技术返祖:软件测试中的纸质备份策略与哲学思辨

在数字化浪潮席卷全球的今天&#xff0c;“返祖”一词似乎与技术进步背道而驰。然而&#xff0c;当我们深入软件测试这一追求极致稳定与可靠的领域&#xff0c;会发现一种引人深思的现象正在悄然回归——对纸质备份的重新审视与策略性应用。这并非简单的技术倒退&#xff0c;而…...

索尼相机功能终极解锁指南:OpenMemories-Tweak完全教程

索尼相机功能终极解锁指南&#xff1a;OpenMemories-Tweak完全教程 【免费下载链接】OpenMemories-Tweak Unlock your Sony cameras settings 项目地址: https://gitcode.com/gh_mirrors/op/OpenMemories-Tweak 索尼相机功能扩展工具OpenMemories-Tweak是一款专为索尼相…...

DM8连接Oracle 11G踩坑实录:用19c的OCI驱动搞定dblink(附完整依赖包)

DM8与Oracle 11G跨数据库连接实战&#xff1a;高版本OCI驱动的避坑指南 当企业数据架构需要同时操作达梦DM8和Oracle 11G数据库时&#xff0c;数据库链接&#xff08;DBLINK&#xff09;成为关键桥梁。但实际操作中&#xff0c;OCI驱动版本冲突、依赖库缺失等问题常常让DBA们陷…...

Linux内核 命名空间机制

Linux Namespace 是内核提供的轻量级资源隔离机制&#xff0c;核心是让不同进程组看到独立的系统资源视图&#xff0c;是容器&#xff08;Docker、K8s&#xff09;的底层基石。它隔离的是进程对资源的可见性&#xff0c;而非物理资源本身&#xff0c;因此比虚拟机更轻量化本质&…...