当前位置: 首页 > 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)

http://www.lryc.cn/news/119974.html

相关文章:

  • kubeadml 安装 k8s
  • 考研C语言进阶题库——更新16-20题
  • 【变形金刚01】attention和transformer所有信息
  • 面试热题(路径总和II)
  • 测试 tensorflow 1.x 的一个demo 01
  • 达蒙DM数据库使用经验
  • Redis—集群
  • 【C语言】数据在内存中的存储详解
  • PIC单片机配置字的设置
  • JavaWeb-Servlet服务连接器(一)
  • 新华三超融合态势感知标准版
  • AutoSAR系列讲解(深入篇)13.2-Mcal Port配置
  • Java旋转数组中的最小数字(图文详解版)
  • Android 13 Hotseat定制化修改——005 hotseat图标禁止形成文件夹
  • 插入、希尔、归并、快速排序(java实现)
  • 怎么把图片表格转换成word表格?几个步骤达成
  • 多线程与高并发--------阻塞队列
  • 前端-NVM,Node.js版本管理
  • React - useEffect函数的理解和使用
  • python模块 — 加解密模块rsa,cryptography
  • 【C++】速识模板(template<class T>)
  • 腾讯云10万日活服务器配置怎么选?费用多少?
  • vue 使用vue-video-player加载视频(铺满容器)
  • OpenCV(三)——图像分割(三)
  • 数论复习c++
  • Java try-with-resources 显性 与 隐性 关闭 资源
  • Vue在页面输出JSON对象,测试接口可复制使用
  • 【STM32】FreeRTOS开启后,不再进入主函数的while(1)
  • Python+Selenium+Unittest 之selenium11--WebDriver操作方法1-常用操作
  • 气液固三相线识别—Langmuir部分复现