17编程基础之字符串30题.docx
- 文档编号:25523928
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:33
- 大小:27.05KB
17编程基础之字符串30题.docx
《17编程基础之字符串30题.docx》由会员分享,可在线阅读,更多相关《17编程基础之字符串30题.docx(33页珍藏版)》请在冰豆网上搜索。
17编程基础之字符串30题
01:
统计数字字符个数
∙查看
∙提交
∙统计
∙提问
总时间限制:
1000ms
内存限制:
65536kB
描述
输入一行字符,统计出其中数字字符的个数。
输入
一行字符串,总长度不超过255。
输出
输出为1行,输出字符串里面数字字符的个数。
样例输入
PekingUniversityissetupat1898.
样例输出
4
来源
习题(7-1)医学部2010期末试题樊波
02:
找第一个只出现一次的字符
∙查看
∙提交
∙统计
∙提问
总时间限制:
1000ms
内存限制:
65536kB
描述
给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。
如果没有,输出no。
输入
一个字符串,长度小于100000。
输出
输出第一个仅出现一次的字符,若没有则输出no。
样例输入
abcabd
样例输出
c
03:
基因相关性
∙查看
∙提交
∙统计
∙提问
总时间限制:
1000ms
内存限制:
65536kB
描述
为了获知基因序列在功能和结构上的相似性,经常需要将几条不同序列的DNA进行比对,以判断该比对的DNA是否具有相关性。
现比对两条长度相同的DNA序列。
首先定义两条DNA序列相同位置的碱基为一个碱基对,如果一个碱基对中的两个碱基相同的话,则称为相同碱基对。
接着计算相同碱基对占总碱基对数量的比例,如果该比例大于等于给定阈值时则判定该两条DNA序列是相关的,否则不相关。
输入
有三行,第一行是用来判定出两条DNA序列是否相关的阈值,随后2行是两条DNA序列(长度不大于500)。
输出
若两条DNA序列相关,则输出“yes”,否则输出“no”。
样例输入
0.85
ATCGCCGTAAGTAACGGTTTTAAATAGGCC
ATCGCCGGAAGTAACGGTCTTAAATAGGCC
样例输出
yes
04:
石头剪子布
描述
石头剪子布,是一种猜拳游戏。
起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风靡世界。
简单明了的规则,使得石头剪子布没有任何规则漏洞可钻,单次玩法比拼运气,多回合玩法比拼心理博弈,使得石头剪子布这个古老的游戏同时用于“意外”与“技术”两种特性,深受世界人民喜爱。
游戏规则:
石头打剪刀,布包石头,剪刀剪布。
现在,需要你写一个程序来判断石头剪子布游戏的结果。
输入
输入包括N+1行:
第一行是一个整数N,表示一共进行了N次游戏。
1<=N<=100。
接下来N行的每一行包括两个字符串,表示游戏参与者Player1,Player2的选择(石头、剪子或者是布):
S1S2
字符串之间以空格隔开S1,S2只可能取值在{"Rock","Scissors","Paper"}(大小写敏感)中。
输出
输出包括N行,每一行对应一个胜利者(Player1或者Player2),或者游戏出现平局,则输出Tie。
样例输入
3
RockScissors
PaperPaper
RockPaper
样例输出
Player1
Tie
Player2
提示
Rock是石头,Scissors是剪刀,Paper是布。
05:
输出亲朋字符串
∙查看
∙提交
∙统计
∙提问
总时间限制:
1000ms
内存限制:
65536kB
描述
编写程序,求给定字符串s的亲朋字符串s1。
亲朋字符串s1定义如下:
给定字符串s的第一个字符的ASCII值加第二个字符的ASCII值,得到第一个亲朋字符;给定字符串s的第二个字符的ASCII值加第三个字符的ASCII值,得到第二个亲朋字符;依此类推,直到给定字符串s的倒数第二个字符。
亲朋字符串的最后一个字符由给定字符串s的最后一个字符ASCII值加s的第一个字符的ASCII值。
输入
输入一行,一个长度大于等于2,小于等于100的字符串。
字符串中每个字符的ASCII值不大于63。
输出
输出一行,为变换后的亲朋字符串。
输入保证变换后的字符串只有一行。
样例输入
1234
样例输出
cege
06:
合法C标识符
描述
给定一个不包含空白符的字符串,请判断是否是C语言合法的标识符号(注:
题目保证这些字符串一定不是C语言的保留字)。
C语言标识符要求:
1.非保留字;
2.只包含字母、数字及下划线(“_”)。
3.不以数字开头。
输入
一行,包含一个字符串,字符串中不包含任何空白字符,且长度不大于20。
输出
一行,如果它是C语言的合法标识符,则输出yes,否则输出no。
样例输入
RKPEGX9R;TWyYcp
样例输出
no
来源
北京大学计算概论06心理及信管期末考试
07:
配对碱基链
∙查看
∙提交
∙统计
∙提问
总时间限制:
1000ms
内存限制:
65536kB
描述
脱氧核糖核酸(DNA)由两条互补的碱基链以双螺旋的方式结合而成。
而构成DNA的碱基共有4种,分别为腺瞟呤(A)、鸟嘌呤(G)、胸腺嘧啶(T)和胞嘧啶(C)。
我们知道,在两条互补碱基链的对应位置上,腺瞟呤总是和胸腺嘧啶配对,鸟嘌呤总是和胞嘧啶配对。
你的任务就是根据一条单链上的碱基序列,给出对应的互补链上的碱基序列。
输入
一个字符串,表示一条碱基链。
这个字符串只含有大写字母A、T、G、C,分别表示腺瞟呤、胸腺嘧啶、鸟嘌呤和胞嘧啶。
字符串长度不超过255。
输出
一个只含有大写字母A、T、G、C的字符串,为与输入的碱基链互补的碱基链。
样例输入
ATATGGATGGTGTTTGGCTCTG
样例输出
TATACCTACCACAAACCGAGAC
08:
密码翻译
∙查看
∙提交
∙统计
∙提问
总时间限制:
1000ms
内存限制:
65536kB
描述
在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别。
我们给出一种最简的的加密方法,对给定的一个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,其他非字母字符不变,则可得到一个简单的加密字符串。
输入
输入一行,包含一个字符串,长度小于80个字符。
输出
输出每行字符串的加密字符串。
样例输入
Hello!
Howareyou!
样例输出
Ifmmp!
Ipxbsfzpv!
来源
计算概论05
09:
潜伏者
描述
R国和S国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动。
历经艰险后,潜伏于S国的R国间谍小C终于摸清了S国军用密码的编码规则:
1、 S国军方内部欲发送的原信息经过加密后在网络上发送,原信息的内容与加密后所的内容均由大写字母‘A’—‘Z’构成(无空格等其他字母)。
2、 S国对于每个字母规定了对应的“密字”。
加密的过程就是将原信息中的所有字母替换为其对应的“密字”。
3、 每个字母只对应一个唯一的“密字”,不同的字母对应不同的“密字”。
“密字”可以和原字母相同。
例如,若规定‘A’的密字为‘A’,‘B’的密字为‘C’(其他字母及密字略),则原信息“ABA”被加密为“ACA”。
现在,小C通过内线掌握了S国网络上发送的一条加密信息及其对应的原信息。
小C希望能通过这条信息,破译S国的军用密码。
小C的破译过程是这样的:
扫描原信息,对于原信息中的字母x(代表任一大写字母),找到其在加密信息中的对应大写字母y,并认为在密码里y是x的密字。
如此进行下去直到停止于如下的某个状态:
1、 所有信息扫描完毕,‘A’—‘Z’所有26个字母在原信息中均出现过并获得了相应的“密字”。
2、 所有信息扫描完毕,但发现存在某个(或某些)字母在原信息中没有出现。
3、 扫描中发现掌握的信息里有明显的自相矛盾或错误(违反S过密码的编码规则)。
例如某条信息“XYZ”被翻译为“ABA”就违反了“不同字母对应不同密字”的规则。
在小C忙得头昏脑胀之际,R国司令部又发来电报,要求他翻译另外一条从S国刚刚截取到的加密信息。
现在请你帮助小C:
通过内线掌握的信息,尝试破译密码。
然后利用破译的密码,翻译电报中的加密信息。
输入
共3行,每行为一个长度在1到100之间的字符串。
第1行为小C掌握的一条加密信息。
第2行为第1行的加密信息所对应的原信息。
第3行为R国司令部要求小C翻译的加密信息。
输入数据保证所有字符串仅由大写字母‘A’—‘Z’构成,且第1行长度与第2行相等。
输出
共1行。
若破译密码停止时出现2,3两种情况,请你输出“Failed”(不含引号,注意首字母大写,其它小写)。
否则请输出利用密码翻译电报中加密信息后得到的原信息。
样例输入
样例#1:
AA
AB
EOWIE
样例#2:
QWERTYUIOPLKJHGFDSAZXCVBN
ABCDEFGHIJKLMNOPQRSTUVWXY
DSLIEWO
样例#3:
MSRTZCJKPFLQYVAWBINXUEDGHOOILSMIJFRCOPPQCEUNYDUMPP
YIZSDWAHLNOVFUCERKJXQMGTBPPKOIYKANZWPLLVWMQJFGQYLL
FLSO
样例输出
样例#1:
Failed
样例#2:
Failed
样例#3:
NOIP
提示
输入输出样例1说明:
原信息中的字母‘A’和‘B’对应相同的密字,输出“Failed”。
输入输出样例2说明:
字母‘Z’在原信息中没有出现,输出“Failed”。
来源
NOIP2009复赛提高组第一题
10:
加密的病历单
描述
小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。
在药房实习期间,小英扎实的专业基础获得了医生的一致好评,得知小英在计算概论中取得过好成绩后,主任又额外交给她一项任务,解密抗战时期被加密过的一些伤员的名单。
经过研究,小英发现了如下加密规律(括号中是一个“原文->密文”的例子)
1. 原文中所有的字符都在字母表中被循环左移了三个位置(dec ->abz)
2. 逆序存储(abcd->dcba)
3. 大小写反转(abXY->ABxy)
输入
一个加密的字符串。
(长度小于50且只包含大小写字母)
输出
输出解密后的字符串。
样例输入
GSOOWFASOq
样例输出
Trvdizrrvj
来源
医学部计算概论2011年期末考试(王志钢)改编
11:
将字符串中的小写字母转换成大写字母
∙查看
∙提交
∙统计
∙提问
总时间限制:
1000ms
内存限制:
65536kB
描述
给定一个字符串,将其中所有的小写字母转换成大写字母。
输入
输入一行,包含一个字符串(长度不超过100,可能包含空格)。
输出
输出转换后的字符串。
样例输入
helloworld123Ha
样例输出
HELLOWORLD123HA
12:
大小写字母互换
∙查看
∙提交
∙统计
∙提问
总时间限制:
1000ms
内存限制:
65536kB
描述
把一个字符串中所有出现的大写字母都替换成小写字母,同时把小写字母替换成大写字母。
输入
输入一行:
待互换的字符串。
输出
输出一行:
完成互换的字符串(字符串长度小于80)。
样例输入
Ifso,youalreadyhaveaGoogleAccount.Youcansigninontheright.
样例输出
iFSO,YOUALREADYHAVEAgOOGLEaCCOUNT.yOUCANSIGNINONTHERIGHT.
来源
计算概论05
13:
整理药名
描述
医生在书写药品名的时候经常不注意大小写,格式比较混乱。
现要求你写一个程序将医生书写混乱的药品名整理成统一规范的格式,即药品名的第一个字符如果是字母要大写,其他字母小写。
如将ASPIRIN、aspirin整理成Aspirin。
输入
第一行一个数字n,表示有n个药品名要整理,n不超过100。
接下来n行,每行一个单词,长度不超过20,表示医生手书的药品名。
药品名由字母、数字和-组成。
输出
n行,每行一个单词,对应输入的药品名的规范写法。
样例输入
4
AspiRin
cisapride
2-PENICILLIN
Cefradine-6
样例输出
Aspirin
Cisapride
2-penicillin
Cefradine-6
来源
习题(7-8)医学部2010期末试题臧家瑞
14:
忽略大小写的字符串比较
描述
一般我们用strcmp可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按ASCII码值大小比较),直到出现不同的字符或遇到'\0'为止。
如果全部字符都相同,则认为相同;如果出现不相同的字符,则以第一个不相同的字符的比较结果为准(注意:
如果某个字符串遇到'\0'而另一个字符串还未遇到'\0',则前者小于后者)。
但在有些时候,我们比较字符串的大小时,希望忽略字母的大小,例如"Hello"和"hello"在忽略字母大小写时是相等的。
请写一个程序,实现对两个字符串进行忽略字母大小写的大小比较。
输入
输入为两行,每行一个字符串,共两个字符串。
(每个字符串长度都小于80)
输出
如果第一个字符串比第二个字符串小,输出一个字符"<";
如果第一个字符串比第二个字符串大,输出一个字符">";
如果两个字符串相等,输出一个字符"="。
样例输入
Hello,howareyou?
hello,Howareyou?
样例输出
=
来源
15:
验证子串
∙查看
∙提交
∙统计
∙提问
总时间限制:
1000ms
内存限制:
65536kB
描述
输入两个字符串,验证其中一个串是否为另一个串的子串。
输入
输入两个字符串,每个字符串占一行,长度不超过200且不含空格。
输出
若第一个串s1是第二个串s2的子串,则输出(s1)issubstringof(s2)
否则,若第二个串s2是第一个串s1的子串,输出(s2)issubstringof(s1)
否则,输出Nosubstring。
样例输入
abc
dddncabca
样例输出
abcissubstringofdddncabca
来源
JerryCircle[Java语言程序设计]
16:
删除单词后缀
∙查看
∙提交
∙统计
∙提问
总时间限制:
1000ms
内存限制:
65536kB
描述
给定一个单词,如果该单词以er、ly或者ing后缀结尾,则删除该后缀(题目保证删除后缀后的单词长度不为0),否则不进行任何操作。
输入
输入一行,包含一个单词(单词中间没有空格,每个单词最大长度为32)。
输出
输出按照题目要求处理后的单词。
样例输入
referer
样例输出
refer
来源
北京大学医学部计算概论08期末考试题
17:
单词替换
描述
输入一个字符串,以回车结束(字符串长度<=100)。
该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。
现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。
输入
输入包括3行,
第1行是包含多个单词的字符串s;
第2行是待替换的单词a(长度<=100);
第3行是a将被替换的单词b(长度<=100).
s,a,b最前面和最后面都没有空格.
输出
输出只有1行,将s中所有单词a替换成b之后的字符串。
样例输入
Youwantsomeonetohelpyou
You
I
样例输出
Iwantsomeonetohelpyou
来源
医学部计算概论2006期末考试题
18:
紧急措施
∙查看
∙提交
∙统计
∙提问
总时间限制:
1000ms
内存限制:
65536kB
描述
近日,一些热门网站遭受黑客入侵,这些网站的账号、密码及email的数据惨遭泄露。
你在这些网站上注册若干账号(使用的用户名不一定相同),但是注册时使用了相同的email。
你此时拿到了那份泄露的数据,希望尽快将自己的密码更改。
策略如下:
根据email找到你的用户名和密码,然后更改密码。
更改的规则为:
小写和大写交换,非字母字符保持不变。
输入
第一行为你的email地址,长度不超过50个字符且只包含字母、数字和‘@’符号。
第二行为账号数N,N(0 接下来N行,每行表示一个账号,格式为: 用户名密码email 它们之间用单个空格分开。 用户名、密码、email均不含空格,且长度不超过50个字符。 输出 有若干行,每行为你的一个账号,包括: 你的账号,修改后的密码(之间用单个空格分隔)。 如果没有你的账号,则输出empty。 样例输入 样例输入1: abc@ 5 helloKittyiLoveCatsabc@ 2012maya2012cplusplus@ KittyCat5iKittyabc@ programpasswordteacher@ whoAmiFeb.29$abc@ 样例输入2: abc@ 1 2012maya2012cplusplus@ 样例输出 样例输出1: helloKittyIlOVEcATS KittyCat5IkITTY whoAmifEB.29$ 样例输出2: empty 来源 医学部计算概论2011年期末考试(谢佳亮) 19: 过滤多余的空格 ∙查看 ∙提交 ∙统计 ∙提问 总时间限制: 1000ms 内存限制: 65536kB 描述 一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格。 输入 一行,一个字符串(长度不超过200),句子的头和尾都没有空格。 输出 过滤之后的句子。 样例输入 Helloworld.Thisisclanguage. 样例输出 Helloworld.Thisisclanguage. 20: 单词的长度 ∙查看 ∙提交 ∙统计 ∙提问 总时间限制: 1000ms 内存限制: 65536kB 描述 输入一行单词序列,相邻单词之间由1个或多个空格间隔,请对应地计算各个单词的长度。 注意,如果有标点符号(如连字符,逗号),标点符号算作与之相连的词的一部分。 没有被空格间开的符号串,都算作单词。 输入 一行单词序列,最少1个单词,最多300个单词,单词之间用至少1个空格间隔。 单词序列总长度不超过1000。 输出 依次输出对应单词的长度,之间以逗号间隔。 样例输入 Shewasbornin1990-01-02andfromBeijingcity. 样例输出 3,3,4,2,10,3,4,7,5 来源 习题(7-7)元培-FromWHF 21: 最长最短单词 描述 输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。 单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。 试输出第1个最长的单词和第1个最短单词。 输入 一行句子。 输出 两行输出: 第1行,第一个最长的单词。 第2行,第一个最短的单词。 样例输入 IamstudyingProgramminglanguageCinPekingUniversity 样例输出 Programming I 提示 如果所有单词长度相同,那么第一个单词既是最长单词也是最短单词。 来源 习题(12-2) 22: 字符串最大跨距 ∙查看 ∙提交 ∙统计 ∙提问 总时间限制: 1000ms 内存限制: 65536kB 描述 有三个字符串S,S1,S2,其中,S长度不超过300,S1和S2的长度不超过10。 想检测S1和S2是否同时在S中出现,且S1位于S2的左边,并在S中互不交叉(即,S1的右边界点在S2的左边界点的左侧)。 计算满足上述条件的最大跨距(即,最大间隔距离: 最右边的S2的起始点与最左边的S1的终止点之间的字符数目)。 如果没有满足条件的S1,S2存在,则输出-1。 例如,S="abcd123ab888efghij45ef67kl",S1="ab",S2="ef",其中,S1在S中出现了2次,S2也在S中出现了2次,最大跨距为: 18。 输入 三个串: S1,S2,S3,其间以逗号间隔(注意,S1,S2,S3中均不含逗号和空格); 输出 S1和S2在S最大跨距;若在S中没有满足条件的S1和S2,则输出-1。 样例输入 abcd123ab888efghij45ef67kl,ab,ef 样例输出 18 23: 单词翻转 ∙查看 ∙提交 ∙统计 ∙提问 总时间限制: 1000ms 内存限制: 65536kB 描述 输入一个句子(一行),将句子中的每一个单词翻转后输出。 输入 只有一行,为一个字符串,不超过500个字符。 单词之间以空格隔开。 输出 翻转每一个单词后的字符串,单词之间的空格需与原文一致。 样例输入 helloworld 样例输出 ollehdlrow 24: 单词倒排 ∙查看 ∙提交 ∙统计 ∙提问 总时间限制: 1000ms 内存限制: 65536kB 描述 编写程序,读入一行英文(只包含字母和空格,单词间以单个空格分隔),将所有单词的顺序倒排并输出,依然以单个空格分隔。 输入 输入为一个字符串(字符串长度至多为100)。 输出 输出为按要求排续后的字符串。 样例输入 Iamastudent 样例输出 studentaamI 25: ISBN号码 描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。 ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别码。 识别码的计算方法如下: 首位数字乘以1加上次位数字乘以2……以此类推,用所得的结果mod11,所得的余数即为识别码,如果余数为10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 17 编程 基础 字符串 30