通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"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]
若要把函数void fun定义为TestClass
输入 4 个数字,各数字采用空格分隔,对应为变量 x0
给定程序中,函数fun的功能是:将形参n中,各位上为偶
有以下程序程序的运行结果是。
设变量均已正确定义,若要通guo“scanf("%d%
已知x和y是两个等长的整数列表,那么表达式[i+j f
程序段如下:请问该程序段的功能是。
字典对象的________方法返回字典中的“键-值对”
表达式 type(3.0) in (int,float
已知x={1,2,3},那么执行语句x.add(3)之
编写一个程序,包含main、readin、sort、与
若以下程序时输入:-2<回车>,则程序的输出结果是__
已有定义inta;floatb,x;charc1,c2
超级块是描述 ______ 信息的数据结构,索引节点是
MYSQL查询语句中用 表示右然连接。
查看MySQL服务器上有哪些数据库的命令是
锁粒度是指锁定的对象,MySQL常见的有表级锁、页级锁
在UPDATE触发程序中,可使用( )关键字引用更新前
若需在O(nlog2n)的时间内完成对数组的排序,且要
当采用分快查找时,数据的组织方式为
使用CREATE TABLE语句的( )子句,在创建基
下列关于 CPU 模式的叙述中,正确的是( )。
假设输入的 n 在 int 范围内,k 为不小于 2
设x=2.5,a=7,y=4.7,算术表达式x+a%3
给定程序中函数fun的功能是:首先将大写字母转换为对应
设G是有n个结点、m条边(n ≤m)的连通图,必须删去
一棵二叉树如右图所示 ,若采用二叉树链表存储该二叉
输入: 11 2输出: ______
在带尾指针(链表指针 clist 指向尾结点)的非空循
在下列关于计算机语言的说法中,正确的有( )。
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2