华为OD机试 - 判断字符串子序列(Java 2023 B卷 100分)

news/2024/7/20 19:56:58 标签: 华为od, java, python

在这里插入图片描述

目录

    • 专栏导读
    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
      • 1、输入
      • 2、输出
      • 3、说明
    • 四、Java算法源码
    • 五、效果展示
      • 1、输入
      • 2、输出

华为OD机试 2023B卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

一、题目描述

给定字符串 target和 source, 判断 target 是否为 source 的子序列。

你可以认为 target 和 source 中仅包含英文小写字母。字符串 source可能会很长(长度 ~= 500,000),而 target 是个短字符串(长度 <=100)。

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

请找出最后一个子序列的起始位置。

二、输入描述

第一行为target,短字符串(长度 <=100)
第二行为source,长字符串(长度 ~= 500,000)

三、输出描述

最后一个子序列的起始位置, 即最后一个子序列首字母的下标。

示例:

1、输入

abc
abcaybec

2、输出

3

3、说明

这里有两个abc的子序列满足,取下标较大的,故返回3。

四、Java算法源码

java">package com.guor.od;

import java.util.*;

public class OdTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String target = sc.nextLine();
        String source = sc.nextLine();
        int i = target.length() - 1;
        int j = source.length() - 1;
        boolean flag = false;
        while (i >= 0 && j >= 0) {
            if (target.charAt(i) == source.charAt(j)) {
                if (i == 0) {
                    flag = true;
                    System.out.println(j);
                }
                i--;
            }
            j--;
        }
        if (!flag) {
            System.out.println(-1);
        }
    }
}

五、效果展示

1、输入

abc
abcaybec

2、输出

3

在这里插入图片描述


🏆下一篇:华为OD机试 - 荒岛求生 - 栈Stack(Java 2023 B卷 100分)

🏆本文收录于,华为OD机试(JAVA)真题(A卷+B卷)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述


http://www.niftyadmin.cn/n/5058306.html

相关文章

【中国知名企业高管团队】系列22:滴滴

大家好&#xff01; 今天华研荟的走进中国知名企业高管团队系列带大家认识滴滴。 滴滴公司是出行领域的先行者&#xff0c;也是一个典型样本。通过滴滴公司的名字变迁我们可以感受到滴滴公司的业务发展&#xff0c;这也是整个出行行业公司的发展路径&#xff1a; 第一阶段&a…

算法 接雨水问题-(双指针)

牛客网: BM94 题目: 把数组看成柱子高度图&#xff0c;计算最多能接多少雨水 思路: 初始化左右双指针left, right 0, n-1, 初始化高度maxL, maxR&#xff0c;比较maxL与maxR&#xff0c;较小的往对面移动&#xff0c;更新maxL或maxR, 同时统计柱子高度差即为可接雨水数&…

C语言中动态内存管理

前言&#xff1a;为什么存在动态内存分配&#xff0c;为什么要用动态内存分配&#xff0c;动态内存分配的意义。鸡汤&#xff1a;有了坚持不一定成功,但没有坚持&#xff0c;就注定失败&#xff0c;各位也要努力坚持提升自己&#xff01; 动态内存分配 动态内存函数&#xff1a…

VsCode好用的扩展插件

开发插件推荐: 别名路径跳转 >> 点击引用的变量名&#xff0c;ctrl 点击 跳转文件Auto Rename Tag >> 修改标签前缀&#xff0c;后缀标签会同时修改Chinees 中文(简体)Code Runner >> 纯js文件右键点击run code即可底部终端打印file-icons-mac >> ma…

Java设计模式(一)—设计模式概述

目录 1.什么是设计模式 2.设计模式四要素 3.设计模式分类 4.设计模式的目的 1.什么是设计模式 集建筑师与规划师于一身的克里斯托佛亚历山大&#xff08; Christopher Alexander&#xff09;说过&#xff1a;"每一个模式都描述了一个在我们周围不断重复发生的问题&…

MJ 种的摄影提示词关键字

景别 Front view photo 正面照 Front view photo of a Boston Terrier with smileSide view photo 侧身照 Side view photo of a Boston Terrier with smileBack view photo 背影照 Back view photo of a Boston TerrierFull body 全身照 Full body photo of a Boston Ter…

MySQL MHA 高可用

目录 1 MySQL MHA 1.1 什么是 MHA 1.2 MHA 的组成 1.3 MHA 的特点 2 搭建 MySQL MHA 2.1 Master、Slave1、Slave2 节点上安装 mysql5.7 2.2 修改 Master、Slave1、Slave2 节点的主机名 2.3 修改 Master、Slave1、Slave2 节点的 Mysql主配置文件/etc/my.cnf 2.4 在 Mast…

华为鸿蒙4,3,2禁用Google谷歌服务框架,使用最新谷歌Google play服务

华为鸿蒙4,鸿蒙3,鸿蒙2有一些应用或者游戏尤其是游戏需要最新版的谷歌play服务支持才可以使用。但是华为的鸿蒙系统解决完”设备未经 play 保护机制认证”之后,最稳定的谷歌play服务是20这个版本&#xff0c;一旦升级到最新的Google谷歌play服务&#xff0c;目前是最新版本23这…