*【华为机试真题详解】判断字符串子序列**
题目
给定两个字符串 s和 t ,判断 s是否为 t 的子序列。
你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度n ~= 500,000),而 s 是个短字符串(长度 <=100)。
字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。
进阶:时间复杂度O(n)\O(n) ,空间复杂度O(n)\O(n)
输入输出描述
输入描述: 共两行,第一行为字符串s, 第二行为字符串t 字符串t的长度 1<=n<=500000 字符串s的长度 1<=m<=100
输出描述: 输出true或者是false,true表示是s是t的子序列,false表示s不是t的子序列
示例
示例1
输入
abc
ahbgdc
输出
true
示例2
输入
axc
ahbgdc
输出
false
代码块
原理:循环找子字符串的字符找到一个就从当前位置截取后面的,如果后面字符长度依然很大所以有可能会有第二个字符串,然后递归找下一个
public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String origin = scanner.nextLine();String sub= scanner.nextLine();int index = 0;String m = origin;int i = 0;int index1 = getIndex(origin, sub, index, i, m);System.out.println(index1);}public static int getIndex(String origin, String sub, int index, int i, String m) {for (String s : sub.split("")){if (origin.indexOf(s) != -1) {origin = origin.substring(origin.indexOf(s)+1, origin.length());if (s.equals(sub.substring(0, 1))) {index = m.indexOf(s, i);}} else if (i == 0) {index = -1;return index;}}if (origin.length() >= sub.length()) {i++;return getIndex(origin, sub, index, i, m);}return index;}
*【华为机试真题详解】判断字符串子序列**相关推荐
- 【华为机试真题详解】判断字符串子序列【2022 Q1 Q2 | 200分】
文章目录 前言 题目描述 示例 1 题目解析 参考代码 前言 <华为机试真题详解>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备华为的面试,期间有想了解的可以私信我, ...
- 【华为机试真题详解】不含 101 的数【2022 Q4 | 100分】
文章目录 前言 题目描述 输入描述 输出描述 示例 1 示例2 题目解析 参考代码 前言 <华为机试真题详解 Python实现>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果 ...
- 【华为机试真题详解】开心消消乐【2022 Q4 | 100分】
文章目录 前言 题目描述 输入描述 输出描述 示例 1 题目解析 参考代码 前言 <华为机试真题详解 Python实现>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备 ...
- 【华为机试真题详解】高矮个子排队
文章目录 前言 题目描述 示例 1 示例 2 示例 3 题目分析 参考代码 前言 <华为机试真题详解 Python实现>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备 ...
- 【华为机试真题详解】优选核酸检测点【2022 Q4 | 100分】
文章目录 前言 题目描述 输入描述 输出描述 示例 1 题目解析 参考代码 前言 <华为机试真题详解 Python实现>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备 ...
- 【华为机试真题详解】小兔子繁殖详解
文章目录 前言 讲解试题 如何写一个递归函数 DP2 跳台阶 小兔子繁殖 前言 <华为机试真题详解>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备华为的面试,期间有想 ...
- 【华为机试真题详解 Python实现】最差产品奖【2023 Q1 | 100分】
文章目录 前言 题目描述 输入描述 输出描述 示例 1 题目解析 参考代码 前言 <华为机试真题详解>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备华为的面试,期间有 ...
- 【华为机试真题详解】日志首次上报最多积分【2022 Q4 | 100分】
文章目录 前言 题目描述 输入描述: 输出描述: 示例 1 题目分析 示例解析 示例分析清楚了那题目要怎么写呢? 参考代码 前言 <华为机试真题详解 Python实现>专栏含牛客网华为专栏 ...
- 【华为机试真题详解 Python实现】统计差异值大于相似值二元组个数【2023 Q1 | 100分】
文章目录 前言 题目描述 输入描述 输出描述 题目解析 参考代码 前言 <华为机试真题详解>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备华为的面试,期间有想了解的可 ...
- 【华为机试真题详解】数大雁【2022 Q2 | 100分】
文章目录 前言 详解试题 1419. 数青蛙 华为机试题. 数大雁 题目解析 数青蛙代码实现 数大雁不考虑叫声不完整的情况 数大雁考虑叫声不完整的情况 前言 <华为机试真题详解>专栏含牛客 ...
最新文章
- redis, memcached, mongo性能比较
- Docker的使用初探(二):Docker与.NET Core的结合
- 【PC工具】图片批量添加水印工具,绿色免安装工具软件,妈妈再也不用担心我.....
- 国开专科计算机应用基础,2021年国开专科《计算机应用基础》形考任务题库大全.docx...
- TCP性能和发送接收窗口、Buffer的关系
- jzoj3844-统计损失【树形dp,换根法】
- MySQL week()函数
- leetcode39. 组合总和
- verilog 简单module_HDLBits:在线学习 Verilog (二十九 · Problem 140-144)
- 如何升级浏览器_涨姿势|教你用手机一键升级路由器软件(固件)
- docker nginx 反向代理
- 计算机组成原理----超标量流水线结构模型分析!!!
- HTML中包含地图和筛选条件,如何实现DedeCMS多条件筛选并以筛选词为标题
- 一直以来伴随我的一些学习习惯(part1)
- python 线性插值处理_python线性插值解析
- JavaScript知识点全面概括与总结(上)
- python爬虫自动更换ip_python爬虫:自动投票代码(自动爬取代理IP)
- 高中计算机基础知识课件,5.1.2 信息资源管理的方式方法
- 有了方差为什么需要标准差?
- Mysql 8配置驱动