《字符串处理》PPT课件.ppt
《《字符串处理》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《字符串处理》PPT课件.ppt(46页珍藏版)》请在三一办公上搜索。
1、第五讲,字符中处理,ACM算法与程序设计,校赛总结http:/=612,实际报名436支队有效队伍385支共889名同学,校外队伍39支 有53支校内队伍和21支分别来自川大、西南民大、西南交大、西南科大以及西南石油大学的校外队伍参加了决赛。题目内容涉及数学题、趣味问题和现实问题。所出题目中有多个问题以同学们在电子科大的日常生活为背景,具有浓厚的本土与时代气息。参赛队伍来自各个年级,并有研究生和中学队伍也参加了决赛,现场的竞赛气氛相当浓烈。解出了7题,均获得特等奖。做出6题的前五名队伍获得了一等奖,做出5题的队伍获得了二等奖,做出2-4题的队伍获得了三等奖。机电学院的2009级的陈岳航同学获得
2、最佳新人奖。这次比赛涌现出一批实力较好的大一和大二的同学有希望加入校ACM集训队,争取参加下半年举行的ACM-ICPC亚洲区域赛。,一个简单的字符串操作的例子,#include#includechar strl=“The quick brown dog jumps over the lazy fox”;char str250=“The QUICK brown dog Jumps over the lazy fox”;char str340=“The QUICK brown dog Jumps over the lazy fox”;/错误:字符串共有43个字符,需要一个长度至少为44的字符串变量
3、存储。/易忽略在字符串的末尾要添加表示结束的额外标志字符/0。char str450;void main(void)int result;str4=“The QUICK brown DOG jumps over the lazy fox”;/错误:不能将一个字符串常量赋值给另一个字符串变量。str4=str2;/错误:不能将一个字符串变量赋值绘另一个字符串变量 str4=str1;/错误:不能将一个字符串变量赋值给另一个字符串变量 printf(“Compare strings:nt%snt%snn”,strl,str2);,Look and Say,1、链接地址2、题目内容The look
4、and say sequence is defined as follows.Start with any string of digits as the first element in the sequence.Each subsequent element is defined from the previous one by verbally describing the previous element.For example,the string 122344111 can be described as one 1,two 2s,one 3,two 4s,three 1s.The
5、refore,the element that comes after 122344111 in the sequence is 1122132431.Similarly,the string 101 comes after 1111111111.,InputThe input consists of a number of cases.The first line gives the number of cases to follow.Each case consists of a line of up to 1000 digits.OutputFor each test case,prin
6、t the string that follows the given string.Sample Input3122344111111111111112345Sample Output11221324311011112131415,3、解题思路,本题是处理重复子串的问题。虽然输入的都是数字,但应当把它们当成字符串处理。由于本题时限一秒,每个字符串的长度多达1000位,所以,不好的算法容易超时。scanf和printf所用的时间大大少于cin和cout所消耗的时间。由于本题需要频繁输出,采用cout则会超过一秒;但使用printf则不会超过一秒。这点是ACM竞赛中节约时间的常识。一般地,由于c
7、in和cout调试很方便,所以调试期间使用它们,但是提交判题系统后,如果发现超时,可尝试将cin和cout改为scanf和printf,看看是不是由于输入输出过于频繁而导致的。,4、参考程序,#include#includeint main()char s1001,t;int c,i,j,n,len,temp;scanf(%d,4、参考程序,for(j=0;jlen;j+)if(sj=t)temp+;if(j=len-1)printf(%d%c,temp,t);elseprintf(%d%c,temp,t);t=sj;temp=1;if(j=len-1)printf(%d%c,temp,t);
8、printf(n);return 0;,Caesar 密码http:/=1298 South Central USA 2002,DescriptionJulius Caesar 生活在充满危险和阴谋的年代。为了生存,他首次发明了密码,用于军队的消息传递。假设你是Caesar 军团中的一名军官,需要把Caesar 发送的消息破译出来、并提供给你的将军。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A都分别替换成字母F),其他字符不 变,并且消息原文的所有字母都是大写的。,密码字母:A B C D E F G H I J K L M N O
9、P Q R S T U V W X Y Z 原文字母:V W X Y Z A B C D E F G H I J K L M N O P Q R S T U,Input最多不超过100个数据集组成。每个数据集由3部分组成:起始行:START密码消息:由1到200个字符组成一行,表示Caesar发出的一条消息结束行:END在最后一个数据集之后,是另一行:ENDOFINPUTOutput每个数据集对应一行,是Caesar 的原始消息。,Sample InputSTART NS BFW,JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX END
10、 START N BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ END STARTIFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ END ENDOFINPUT Sample OutputIN WAR,EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES I WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECON
11、D IN ROME DANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE,问题分析,问题需要将密码消息中的每个字母分别进行相应的变换。关键之处是识别输入数据中的消息行、读入消息行的数据。scanf函数使用输入字符串时,每个字符串中不能有空格。gets函数一次可读入一行,但有可能会导致warning message,gets接收输入时,不对接收变量进行检查,容易产生内存溢出;fgets(str,sizeof(str),stdin)中sizeof(str)用于限定string接收数据的上限,多数情况面向文件I/O,由于溢出检查,f
12、gets比gets安全;,解密时,需将消息中单词的字符串作为普通数组,一次变换其中每个字母。需用以下几个字符串处理函数:gets:读入一行字符串,允许包含空格 strcmp:识别消息行的start和end strlen:计算加密消息中的每个单词的长度,程序,#include#includevoid decipher(char message);void main()char message201;gets(message);while(strcmp(message,“START”)=0)decipher(message);printf(“%sn”,message);gets(message);
13、return;,void decipher(char message)char plain27=“VWXYZABCDEFGHIJKLMNOPQRSTU”;char cipherEnd201;int i,cipherLen;gets(message);cipherLen=strlen(message);for(i=0;i=A,CDOJ_1035 论文搜索 http:/=1035,Description allenlowesy突然从Marswind那里得知,光纤技术要结课了,期末考试内容是一篇论文。allenlowesy以为可以不动脑筋地水过去,但是那位他从来没有见过的老师却规定,论文字数不得少于
14、2000字,更要命的是,参考文献必须是IEEE或者CSA的论文。众所周知,IEEE上有很多很多很多很多论文。当allenlowesy打开IEEE的搜索界面寻找关键词为fiber的论文时,系统返回给他一大堆结果。allenlowesy纠结了,他不可能把所有的论文都看了来确定是否有用。于是他假设,如果论文的标题中有一个单词是关键词(大小写也要一致),那么这篇论文是有用的。现在allenlowesy需要从搜索结果中找到这些他认为有用的论文,那么这些论文有多少呢?,Input 含多组测试数据,输入首先是一个整数T表示测试数据组数(T=20)。每组数据开始为一个整数N(N=100),表示检索到的论文数。
15、接下来1行是allenlowesy搜索的关键词,长度不超过20,只包括小写字母和大写字母。接下来N行,每一行是一个论文的标题,长度不超过100,只包括小写字母、大写字母和空格 Output 每组数据输出一个整数M,表示allenlowesy认为有用的论文数。如果没有一篇论文的标题包含有关键词,则输出“Do not find”。在每组输出结果后再输出一个空行。,Sample Input 32fiberoptical fiberoptical Fiber3SensorsOptical Fiber Sensing in Mechanical MeasurementA New Approach to
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 字符串处理 字符串 处理 PPT 课件
链接地址:https://www.31ppt.com/p-5491645.html