通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"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]的子序列。
2)当 t 是 s 的子序列时,输出一定不为 0。
正确
错误
所属试卷:CSP-S1提高级初赛试卷[2019]
下列关于软件测试的目的和准则的叙述中,正确的是( )。
有以下程序程序运行后的输出结果是( )。
有如下程序:程序运行后的输出结果是。
以下选项中,当x为大于1的奇数时,值为0的表达式是
已知 vec =[[1,2],[3,4]],则表达式
以下哪个Python语句是正确的。
假设有非空列表x,那么x.append(3)、x= x
关于以下代码的描述,错误的是( )。
下面程序段运行结果是_________。
有变量定义char c,*s=NULL;则sizeof
在按字节编址的计算机M上,题43中f1的部分源程序(阴
利用vsftp配置FTP服务器,要求:(1)匿名用户可
全部Redhat 9.0系统安装最大大约需要多大磁盘空
安装Linux系统对硬盘分区时,必须有两种分区类型:
创建表语句中表示定义默认约束的子句是
逻辑层的数据模型是描述数据库数据整体的逻辑结构,称为
SQL语言中,用于事务回滚的语句是 ______ 。
在待排数据基本有序的情况下,快速排序效果最好。
装填因子是散列表的一个重要参数,它反映散列表的装满程度
以下哪个命令用于测试网络连通
外部中断包括不可屏蔽中断(NMI)和可屏蔽中断,下列关
假设 int 为 32 位有符号整数类型,输入的 n
功能:统计出若干个学生的平均成绩,最高分以及得最高分的
当a=3,b=2,c=1时,执行以下程序段后b=___
预处理命令行都必须以_____号开始。
函数不可以进行嵌套定义,但可以进行嵌套_____。
设有课程关系模式R(C#,Cn,T,TA)(其中,C#
甲乙丙丁四人在考虑周末要不要外出郊游。已知①如果周末下
( )属于 NP 类问题。
1946年诞生于美国宾夕法尼亚大学的 ENIAC 属于
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2