通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"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]的子序列。
1)程序输出时,suf数组满足:对任意 0≤i<slen,suf[i]≤suf[i+1]。
正确
错误
所属试卷:CSP-S1提高级初赛试卷[2019]
支持子程序调用的数据结构是( )。
下列程序调用函数sum计算下列级数之和:S=1+x+x
下面对软件测试描述错误的是( )。
在满足实体完整性约束的条件下( )。
关于“do{循环体}while(条件表达式)”,以下叙
有以下程序:程序运行时,输入的值在哪个范围内才会有输出
有以下程序:程序的运行结果是( )。
正则表达式元字符___________用来表示该符号前
Python关键字elif表示__________和_
包含yield语句的函数一般成为生成器函数,可以用来创
已知列表 x=[1,3,2],那么执行语句 y=lis
在设计正则表达式时字符__________紧随着其他限
已知列表x=[1,3,2],那么表达式[value f
表达式 sorted([13,1,237,89,100
甲乙双方均采用后退N帧协议(GBN)进行持续的双向数据
进行字符串查找,使用( )命令。
锁粒度是指锁定的对象,MySQL常见的有表级锁、页级锁
可使用 _______ 语句在已存在的表上创建索引。
设一个链表最常用的操作是在末尾插入结点和删除尾结点,则
一般来说,用拨号IP方式连入Internet所需的硬件
触发器不是响应以下哪一语句而自动执行的Mysql语句
C语言中,数组名是一个不可变的_____量,不能对它进
C语言中,二维数组在内存中的存放方式为按_____优先
则z的值为_____。
假设输入的所有数的绝对值都不超过1000,当输入为“1
以下叙述中正确的是
(打印月历)输入月份 m(1≤m≤12),按一定格式打
二进制数 00100100 和 00010100 的和
在下面各世界顶级的奖项中,为计算机科学与技术领域做出杰
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2