通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"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]
若AA为一个类,a为该类的私有整型数据成员,getA
下列代码中,将引起一个编译错误的行是( )。1) pu
若int i=5,j=4;则下列表达式的值不是浮点型的
以下选项中的编译预处理命令行,正确的是( )。
删除列表中重复元素最简单的方法是将其转换为集合后再重新
已知函数定义def func(*p):return s
任意长度的Python列表、元组和字符串中最后一个元素
定义一个带参得宏,用以判断整数n是否能被x整除,编写程
以下程序运行结果是____________。
申请免费电子信箱必需( )。
有以下程序 程序运营后的输出结果是
某公司网络如题47图所示。IP地址空间192.168.
从内核实现的角度说明Linux进程共享文件的方式有哪几
哪个目录存放用户密码信息( )
系统需求分析两个重要的结果是数据流图和 。
数据库系统中,实现数据管理功能的核心软件称为
可使用 _______ 语句在已存在的表上创建索引。
若串S1=‘ABCDEFG’, S2=‘9898’ ,
在视图上不能完成的操作是( )
若任一个字符的编码都不是其他字符编码的前缀,则称这种编
下面哪个选项是11 1011 1001 0111 和0
已知a=3,b=4,c=5,则逻辑表达式!(a+b)+
设a、b、c为整型数,且a=2,b=3,c=4,则执行
C语言中一个函数由函数首部和_____两部分组成。
函数fun的功能是:在有n名学生,2门课成绩的结构体数
若输入的字符串长度为 18,那么输入的字符串跟输出的字
将7个名额分给4个不同的班级,允许有的班级没有名额,有
输入: 3 5输出:
已知n个顶点的有向图,若该图是强连通的(从所有顶点都存
输入: 66553输出: ______________
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2