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

题目描述:

输入两个字符串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;
}
相关推荐
ゞ 正在缓冲99%…2 分钟前
2025.9.24华为软开
java·算法·华为
十五年专注C++开发5 分钟前
sigslot: 一个轻量级实现观察者模式的C++开源库
c++·观察者模式·开源
Dev7z5 分钟前
基于MATLAB实现SVM和集成特征的水稻病害图像识别系统
算法·机器学习·支持向量机
AI科技星6 分钟前
时空的几何之歌:论统一场论动量公式 P = m(C - V) 的完备重构、量化哲学诠释与终极验证
数据结构·人工智能·算法·机器学习·计算机视觉·重构
千千道7 分钟前
QT上位机作为FTP客户端上传多文件
c++·qt
屿筱9 分钟前
vscode 关于C/C++的环境配置
c++·ide·vscode
大千AI助手10 分钟前
基于实例的学习:最近邻算法及其现代演进
人工智能·算法·机器学习·近邻算法·knn·大千ai助手·基于实例的学习
程序喵大人12 分钟前
C++ MCP 服务器实现
开发语言·c++·项目·mcp服务器
小尧嵌入式13 分钟前
QT软件开发知识点流程及文本转语音工具
开发语言·c++·qt
程序员-King.16 分钟前
day108—同向双指针—乘积小于K的子数组(LeetCode-713)
算法·leetcode·双指针