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

题目描述:

输入两个字符串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;
}
相关推荐
zzxdear1 分钟前
用 OR-Tools CP-SAT 求解最简单的柔性作业车间调度(FJSP)
算法
ShineWinsu7 分钟前
对于 C++ :从 const、constexpr、auto、decltype 到 type_traits、SFINAE 与 Concepts的解析
c++
luj_176812 分钟前
变频技术核心原理揭秘
服务器·c语言·开发语言·经验分享·算法
rannn_11113 分钟前
【力扣hot100】图论专题+模板|DFS、BFS、拓扑排序...
java·算法·leetcode·深度优先·图论
思维新观察14 分钟前
装机突破8000万台!鸿蒙有望冲刺年度1亿台目标
华为·harmonyos
_Narcissus_17 分钟前
B树概念及操作笔记(含完整代码实现)
c语言·数据结构·数据库·c++·笔记·b树·算法
l12586518 分钟前
# RAG多轮对话检索设计:Query重写如何让“那它呢“变成完整问题
前端·数据库·人工智能·python·算法·fastapi·milvus
疯狂打码的少年33 分钟前
【数据结构】图的应用:最短路径(Dijkstra / Floyd)
数据结构·笔记·算法
筠筠喵呜喵34 分钟前
解决问题:QNX平台调用glReadPixels卡滞
c++·unix
linux-hzh35 分钟前
百日算法修炼 · Day 13
算法