通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"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]
线程在生命周期中要经历5种状态。如果线程当前是新建状态
某页式虚拟存储管理系统采用固定分配局部置换的 LRU
编写代码获得用户输入的一个三角形的 3 条边长,计算三
下列函数fun判断自然数n是否是素数。
以下程序段中的变量已定义为int类型,则程序段的输出结
已知x={1:2,2:3,3:4},那么表达式sum
以下语句的执行结果是( )。
C语言源程序的基本单位是______________。
已有定义inta;floatb,x;charc1,c2
若将网络21.3.0.0/16划分为128个规模相同的
在将数据序列(6, 1, 5, 9, 8, 4, 7)
linux文件系统中每个文件用________来标识
LINUX用于启动系统所需加载的内核程序位于( )
简述在虚拟机中安装Red Hat Linux 9.0
MYSQL查询语句中用inner join表示内连接,
MySQL 5.6版本默认的存储引擎是 。
调用存储过程的语句是
A[N,N]是对称矩阵,将下三角(包括对角线)以行序存
下列哪个阶段不属于软件生存周期的三大阶段?
如果函数不要求返回值,可用_____来定义函数为空类型
给定程序中,函数fun的功能是:在形参s所指字符串中寻
带链的栈与顺序存储的栈相比,其优点是
函数fun的功能是:根据所给的年、月、日,计算出该日是
设变量P是指针变量,语句P=NULL;是给指针变量赋N
2)判断:若输入的两个字符串长度均为 101 时,则
本题t是s的子序列的意思是:从s中删去若干个字符,可以
输入:xyzxyw输出:( )
如果平面上任取 n个整点(横纵坐标都是整数),其中一定
输入: 9 121 22 33 44 55 66 1
关于拓扑排序,下面说法正确的是( )。
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2