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

题目描述:

输入两个字符串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;
}
相关推荐
CoovallyAIHub2 小时前
OpenClaw 近 2000 个 Skills,为什么没有一个好用的视觉检测工具?
深度学习·算法·计算机视觉
CoovallyAIHub2 小时前
CVPR 2026 | 用一句话告诉 AI 分割什么——MedCLIPSeg 让医学图像分割不再需要海量标注
深度学习·算法·计算机视觉
CoovallyAIHub3 小时前
Claude Code 突然变成了 66 个专家?这个 5.8k Star 的开源项目,让我重新理解了什么叫"会用 AI"
深度学习·算法·计算机视觉
兆子龙3 小时前
前端哨兵模式(Sentinel Pattern):优雅实现无限滚动加载
前端·javascript·算法
xlp666hub6 小时前
Leetcode第五题:用C++解决盛最多水的容器问题
linux·c++·leetcode
CoovallyAIHub6 小时前
9个视觉语言模型工厂实测:Qwen 87.9%碾压全场,你的显卡能跑哪个?
算法
SparkX开源AI知识库7 小时前
手摸手带你安装OpenClaw并对接飞书
算法·架构
得物技术7 小时前
搜索 C++ 引擎回归能力建设:从自测到工程化准出|得物技术
c++·后端·测试
一语07167 小时前
3分钟搞懂深度学习AI:实操篇:卷积层
人工智能·算法