字符串子序列II

news/2024/10/22 17:30:59/

 题目描述

【字符串子序列II】

给定字符串 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。

解题思路:从右边往左边找(起点应该为len2 - len1),如果找到则是最大下标。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>int main()
{char str1[101] = {0};char str2[500001] = {0};gets(str1);gets(str2);int len1 = strlen(str1);int len2 = strlen(str2);if (len2 < len1) {printf("len err\n");return -1;}int idx_1;for (int i = len2-len1; i >= 0; i--) {idx_1 = 0;if (str2[i] != str1[idx_1]) {continue;}idx_1++;if (idx_1 > len1) {continue;}int idx_2 = i + 1;while (idx_2 < len2 && idx_1 < len1) {if (str1[idx_1] == str2[idx_2]) {idx_1++;}idx_2++;if (idx_1 == len1) {printf("%d\n", i);return 0;}}}printf("-1\n");return 0;
}


http://www.ppmy.cn/news/1099080.html

相关文章

leetcode 97. 交错字符串

给定三个字符串 s1、s2、s3&#xff0c;请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。 两个字符串 s 和 t 交错 的定义与过程如下&#xff0c;其中每个字符串都会被分割成若干 非空 子字符串&#xff1a; s s1 s2 … sn t t1 t2 … tm |n - m| < 1 交错 是 s1 …

RTPV70-30、RTPV72-30电磁比例插装阀放大器

RTSP08-20、RTSP10-20、RTSP12-20、RTSP08-22、RTHSP09-30、RTPV70-30、RTPV72-30电磁比例插装阀额定电磁线圈适合连续工作&#xff0c;应急手控选件&#xff0c;外置式比例放大器&#xff0c;效湿式衔铁结构&#xff0c;可选IP69K防水E型线圈&#xff0c;工业通用阀孔。

【C/C++】BMP格式32位转24位

问题 如题 解决方法 bmp文件格式参考:【C/C++】BITMAP格式分析_vc++ bitmap头文件_sunriver2000的博客-CSDN博客BITMAP文件大体上分成四个部分,如下表所示。文件部分长度(字节)位图文件头 Bitmap File Header14位图信息数据头 Bitmap Info Header40调色板 Palette4*n (n≥…

L1-058 6翻了(Python实现) 测试点全过

前言&#xff1a; {\color{Blue}前言&#xff1a;} 前言&#xff1a; 本系列题使用的是&#xff0c;“PTA中的团体程序设计天梯赛——练习集”的题库&#xff0c;难度有L1、L2、L3三个等级&#xff0c;分别对应团体程序设计天梯赛的三个难度。更新取决于题目的难度&#xff0c;…

有哪些跨平台的办公软件,可以集成到自己的 APP中?

随着移动办公的普及&#xff0c;越来越多的跨平台办公软件被开发出来以满足不断增长的移动办公需求。这些软件不仅可以在各种操作系统中运行&#xff0c;还可以集成到自己的APP中&#xff0c;进一步提升用户的工作效率。本文将介绍一些常用的跨平台办公软件&#xff0c;并探讨如…

[随笔] 具有产品意识的工程师

具有产品意识的工程师 最近一段时间是公司的晋升季&#xff0c;我也对过去一段时间的工作进行了全面的复盘&#xff0c;识别、分析与改善不足之处的同时&#xff0c;也继续完善并发扬光大做的好的方面&#xff0c;这其中对“成为具备产品意识的工程师”有着深刻的体会。 研发…

华为云中对象存储服务软件开发工具包(OBS SDK) C语言介绍

华为云的OBS介绍&#xff1a;摘自华为云官网&#xff1a;https://support.huaweicloud.com/obs/index.html 华为云的对象存储服务(Object Storage Service&#xff0c;OBS)是一个基于对象的海量存储服务&#xff0c;为客户提供海量、安全、高可靠、低成本的数据存储能力。 …

2023年MySQL实战核心技术第一篇

目录 四 . 基础架构&#xff1a;一条SQl查询语句是如何执行的&#xff1f; 4.1 MySQL逻辑架构图&#xff1a; 4.2 MySQL的Server层和存储引擎层 4.2.1 连接器 4.2.1.1 解释 4.2.1.2 MySQL 异常重启 解决方案&#xff1a; 4.2.1.2.1. 定期断开长连接&#xff1a; 4.2.1.2.2. 初始…