华为机试真题--字符串序列判定

题目描述:

输入两个字符串S和L,都只包含英文小写字母,其中S长度<=100,L长度<=500000,请判定S是否是L的有效字串。

判定规则:

S中的每个字符在L中都能找到(可以不连续),且S在L中字符的前后顺序与S中顺序要保持一致。(例如,S="ace"是L="abcde"的一个子序列且有效字符是a、c、e,而"aec"不是有效子序列,且有效字符只有a、e)

输入描述:

输入两个字符串S和L,都只包含英文小写字母。

S长度<=100,L长度<=500,000。先输入S,再输入L,每个字符串占一行。

输出描述:

S串最后一个有效字符在L中的位置。(首位从0开始计算,无有效字符返回-1)

示例1:

输入

ace

abcde

输出

4

示例2:

输入

fgh

abcde

输出

-1

C++源码:

cpp 复制代码
#include <iostream>
#include <string>
using namespace std;

int main() {
    string S, L;
    cin >> S >> L;
    int index = -1;
    for (int i = 0, j = 0; i < S.size() && j < L.size(); ++j) {
        if (S[i] == L[j]) {
            index = j;
            ++i;
        }
    }
    cout << (index != -1 ? index : -1) << endl;
    system("pause");
    return 0;
}
相关推荐
yangtuoni13 分钟前
vscode调试C++程序
c++·ide·vscode
吴秋霖18 分钟前
【某音电商】protobuf聊天协议逆向
python·算法·protobuf
m0_5879589527 分钟前
C++中的命令模式变体
开发语言·c++·算法
似水এ᭄往昔37 分钟前
【数据结构】--链表OJ
数据结构·算法·链表
小白学鸿蒙1 小时前
串口通信发送后无响应|极简排查步骤(实战总结)
华为·harmonyos
2501_924952691 小时前
代码生成器优化策略
开发语言·c++·算法
MORE_771 小时前
leecode100-划分区间-贪心算法
算法·贪心算法
Book思议-1 小时前
【数据结构实战】C语言实现栈的链式存储:从初始化到销毁,手把手教你写可运行代码
数据结构·算法·链表··408
Book思议-2 小时前
【数据结构实战】川剧 “扯脸” 与栈的 LIFO 特性 :用 C 语言实现 3 种栈结构
c语言·数据结构·算法·
3GPP仿真实验室2 小时前
【MATLAB源码】感知:CFAR 检测算法库
算法·matlab·目标跟踪