题库首页 › 蓝桥杯大赛(C语言) › 题目 14708

单词验证 题目描述: 小丁在学习英语单词时发现,某些单词如果删除若干字母后(不改变剩余字母的顺序)可得到另一个单词。 现有 N 组数据,每组数据中给定两个仅包含小写字母的字符串,表示初始单词 s 和目标单词 t,请判断对于每组数据,能否从 s 中删除零个或多个字母得到 t,如果能得到输出 "YES",否则输出 "NO"。 例如: N = 2,两组数据如下: 1)s = "adventure",t = "avenue",删除 "adventure" 中的第 2、6、8 个字母可得到"avenue",故输出 YES; 2)s = "good",t = "no",无论怎么删除都无法得到 t,故输出 NO。 输入描述: 第一行输入一个正整数 N(1≤N≤1000),表示数据组数; 接下来 N 行,每行输入两个仅包含小写字母的字符串,分别表示初始单词 s(1≤s 的长度≤500)和目标单词 t(1≤t 的长度≤500),字符串之间以一个空格隔开。 输出描述: 共 N 行,每行输出一个字符串,如果能从初始单词 s 中删除零个或多个字母得到目标单词 t,输出"YES",否则输出 "NO"。 样例输入: 2 adventure avenue good no 样例输出: YES NO

正确答案:参考程序(Python):N=int(input());for _ in range(N):s,t=input().split();i=j=0;while i<len(s) and j<len(t):if s[i]==t[j]:j+=1;i+=1;print('YES' if j==len(t) else 'NO')。样例→YES NO。核心:子序列判断。

试卷来源:202501(第16届)蓝桥杯C++编程青少组(选拔赛_中高级)真题

本卷相关题目

在线做题 同科目题库