华为OD机试-- 字符串子序列II

226 阅读1分钟

题目

给定字符串 target 和 source,判断 target是否为 source 的子序列。你可以认为target和 source 中仅包含英文小写字母。

字符串 source 可能会很长(长度~=500,000),而 target是个短字符串(长度<=100)。

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

(例如,”abc”是”aebycd”的一个子序列,而”ayb”不是)。

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

输入描述:

第一行为target,短字符串(长度 <=100)

第二行为source,长字符串(长度 ~= 500,000)

输出描述:

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

示例1 输入输出示例仅供调试,后台判题数据一般不包含示例

输入

abc

abcaybec

说明

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

备注:

若在source中找不到target,则输出-1。

Java 实现:华为od统一考试B卷【字符串子序列II】Java 实现

Python实现:华为od统一考试B卷【字符串子序列II】Python 实现

C++ 实现:华为od统一考试B卷【字符串子序列II】C++ 实现_c++求字符串的子序列

JavaScript实现:华为od统一考试B卷【字符串子序列II】JavaScript 实现

C实现:华为od统一考试B卷【字符串子序列II】C语言 实现

R-C (10).jpg