通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"CSP考试" 试卷中 CSP-S1提高级初赛试卷[2019] 中有题目如下:
第1题
本题t是s的子序列的意思是:从s中删去若干个字符,可以得到t。特别的,如果s == t,那么t也是s的子序列;空串是任何串的子序列。例如“acd”是“abcde”的子序列,“acd”是“acd”的子序列,但“acd”不是“abcde”的子序列。
S[x..y]表示s[x]…s[y]共 y-x+1y−x+1 个字符构成的字符串,若 x>yx>y 则s[x..y]是空串。t[x..y]同理。
#include <iostream> #include <string> using namespace std; const int max1 = 202; string s, t; int pre[max1], suf[max1]; int main() { cin >> s >> t; int slen = s.length(), tlen= t.length(); for (int i = 0, j = 0; i < slen; ++i) { if (j < tlen && s[i] == t[j]) ++j; pre[i] = j;// t[0..j-1]是s[0..i]的子序列 } for (int i = slen - 1, j = tlen - 1; i >= 0; --i) { if(j >= 0 && s[i] == t[j]) --j; suf[i]= j; //t[j+1..tlen-1]是s[i..slen-1]的子序列 } suf[slen] = tlen -1; int ans = 0; for (int i = 0, j = 0, tmp= 0; i <= slen; ++i) { while (j <= slen && tmp >= suf[j] + 1) ++j; ans = max(ans, j - i - 1); tmp = pre[i]; } cout << ans << endl; return 0; }
提示:
t[0..pre[i]-1]是s[0..i]的子序列;
t[suf[i]+1..tlen-1]是s[i..slen-1]的子序列。
6)若 tlen = 10, 输出为 2,则 slen 最小为
0
10
12
1
所属试卷:CSP-S1提高级初赛试卷[2019]
在类声明中,紧跟在“public:”后声明的成员的访问
在下列关键字中,不能用来表示继承方式的是。
已知类Base、Derived的定义,x是一个Deri
下面可以作为软件设计工具的是( )。
给定程序MODI1.C中函数fun的功能是:统计sub
一名教师可讲授多门课程,一门课程可由多名教师讲授。则实
有以下函数:程序运行后的输出结果是( )。
设有定义:则表达式(a&b)ǁ(a&&b)和(a|b)
有以下程序:程序的运行结果是。
元组是不可变的,不支持列表对象的inset、rem
表达式{1,2,3} - {3,4,5}的值为____
以下关于文件的描述,错误的是。
在设计正则表达式时字符__________紧随着其他限
以下程序运行结果是_________。
函数swap(int x,int y)可完成对x和y值
以下程序运行结果是__________。
甲乙双方均采用后退N帧协议(GBN)进行持续的双向数据
将前一个命令的标准输出作为后一个命令的标准输入,称之为
简称DBMS,是一种专门用于管理数据库的计算机
连通图上各边权值均不相同,则该图的最小生成树是唯一的。
按软件的功能进行划分,软件可以划分为 、 、
计算机网络:(9分)主机H登录FTP服务器后自服务器上
设有如下定义:若要使p指向data中的a域,正确的赋值
设x和y均为int型变量,则以下for循环中的scan
已知i=5.6,写出语句a=(int)i;执行后变量i
设一棵树的度为3,共有27个结点,其中度为3,2,0的
给定程序中,函数fun的功能是根据形参i的值返回某个函
在使用高级语言编写程序时,一般提到的“空间复杂度”中的
LZW 编码是一种自适应词典编码。在编码的过程中,开始
在下列各软件中,属于 NOIP 竞赛(复赛)推荐使用的
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2