通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"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]的子序列。
3)程序运行到第 23行时,j - i- 1 一定不小于 0
正确
错误
所属试卷:CSP-S1提高级初赛试卷[2019]
有如下程序,编译时有错误的是。
以下关键字不能用来声明类的访问权限的是。
在E—R图中,用来表示实体联系的图形是( )。
输入一段中文文本,不含标点符号和空格,保存为变量 s,
以下关于数据维度的描述,错误的是( )。
下列叙述中,不属于设计准则的是( )。
给定程序中,函数fun的功能是:将形参n所指变量中,各
有以下程序:程序的运行结果是( )。
请在下面程序的横线处填上适当内容,以使程序完整,并使程
已知列表 x=[1,3,2],那么执行语句 y=lis
编写程序,其功能为打印如下图所示图形。**** ***
表达式sorted({'a':3,'b':9,'c':
字符串属于Python有序序列,和列表、元组一样都支持
表达式type(3+4j)in(int,float,c
下面程序功能是:从键盘读入一个可以带空格的字符串(假设
有变量定义char c,*s=NULL;则sizeof
下列应用中,适合使用B+树的是( )。
以下为 u盘插入usb接口后执行fdisk –l的结果
改变命令提示符的环境变量是
在Linux系统中,rw-r--r--权限用数字表示是
命令 netstat -a 停了很长时间没有响应,这可
语句grant select,update on __
下列关于ipv6和ipv4 的叙述中,正确的是( )。
程序员小A结婚,程序员B去参加婚礼,随份子钱时说,凑个
设有宏定义#define MAX(x,y) (x)>
学生选修课程的关系模式为SC(S#,Sn,Sd,Sa,
(最大子矩阵和)给出 m行n 列的整数矩阵,求最大的子
输入: 1 2 5输出: _______
输出: _____________________
在 C 语言中,表达式 21^2 的值是( )
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2