通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"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]的子序列。
5)若 tlen = 10,输出为 0 ,则 slen 最小为:
10
12
0
1
所属试卷:CSP-S1提高级初赛试卷[2019]
由于常对象不能被更新,因此
设有以下定义和程序,则以下不合语法的调用语句是。
if语句的语法格式可描述为:格式1:if(<条件>)<
有以下程序执行时输入:1 2 3 <回车>,则输出结果
有以下程序(其中的strstr函数头部格式为:ch
若有定义:则以下与上述定义中a类型完全相同的是。
C语言整数不包括。
已知 x = list(range (10)),则表达
以下叙述不正确的是
在C语言中,用关键字____________定义单精度
以下程序的输出结果是________。
ADSL的下行速率可达( )
把文件file1和file2合并成file3的命令是_
在/home目录下查找文件名为。Profile的文件,
数据库系统的设计包括 和数据库应用系统设计两方面
Mysql锁的粒度越小,并发度就越 ___,开销越大,
在给主机设置 IP 地址时,那一个能使用
用户界面的 是用户界面设计最重要的也是最基本的目标
C语言表达式!(3<6)||(4<9)的值是_____
当a=1,b=2,c=3时,执行以下程序段后a=___
若输入字符串:abcde<回车>,则以下while循环
预处理命令行都必须以_____号开始。
深度为5的完全二叉树的结点数不可能是
在关系A(S,SN,D)和B(D,CN,NM)中,A的
对于给定的序列{ak},我们把(i, j)称为逆序对当
一个 32 位整型变量占用( )个字节。
( )是目前互联网上常用的 E-mail 服务协议
输入: 30输出: _________
输入: 7 4输出: _________
(连续邮资问题)某国发行了 n 种不同面值的邮票,并规
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2