字符串扩展 怼烎@ 2022-07-11 18:57 290阅读 0赞 think: 1、一定要注意细节,一失足成千古恨 2、学会灵活变通 [sdut原题链接][sdut] 字符串扩展 Time Limit: 1000MS Memory Limit: 65536KB Problem Description Tom有些时候为了记录的方便,常常将一些连续的字符用扩展符’-‘简单表示。比如abcdefg可以简写为a-g,即用起始的字符和终止字符中间加上一个扩展符’-‘来表示这个字符串。但是为了处理的方便,Tom又必须将这些我们简单记法扩展成原来的字符串。很明显要是人工来做的话必定很麻烦,Tom知道计算机可以帮助他完成这个任务,但是他却不会编程,这的确让他很上火。他知道今天是山东理工大学第三届ACM校赛的日子,届时来自全校的编程爱好者都会来参加比赛,他很兴奋,因为这个困惑他良久的问题终于要被解决了。给你一个含有扩展符’-‘的字符串,你的任务就是将他还原成原来的字符串。要求是只处理\[a-z\]、\[A-Z\]、\[0-9\]范围内的字符扩展,即只有当扩展符前后的字符同时是小写字母、大写字母或数字时并且扩展符前面的字符不大于后面的字符才进行扩展,其它情况不进行扩展,原样输出。例如:a-R、D-e、0-b、4-B等字符串都不进行扩展。 Input 第一行是一个正整数T,表示共有T组测试数据(T < 100)。下面的T行,每一行包括一个长度不大于1000的待扩展字符串. Output 每组测试数据输出一行扩展后的字符串。 Example Input 3 ADEa-g-m02 acm-0-5-a-ac-cm-m-A-AC-CM-M Welcometothe3rdACM/ICPCCampusProgrammingContestofSDUT-1-3-A-z-a-Z Example Output ADEabcdefghijklm02 acm-012345-aaccmm-AACCMM Welcometothe3rdACM/ICPCCampusProgrammingContestofSDUT-123-A-z-a-Z Hint Author 山东理工大学第三届ACM程序设计竞赛 以下为accepted代码 #include <stdio.h> #include <string.h> #define MAXN 1400 int main() { char s[MAXN], ch; int T, i, len; scanf("%d", &T); getchar(); while(T--) { scanf("%s", s); ///gets(s);///3676 移除了输入数据中的 '\r',修复了某些写法下 gets() 会 WA 的问题。by bLue len = strlen(s); for(i = 0; i < len; i++) { if(s[i] != '-') printf("%c", s[i]); else { if((s[i-1]>='a'&&s[i-1]<='z') && (s[i+1]>='a'&&s[i+1]<='z') && (s[i-1]<=s[i+1])) { ch = s[i-1] + 1; while(ch < s[i+1]) { printf("%c", ch); ch++; } } else if((s[i-1]>='A'&&s[i-1]<='Z') && (s[i+1]>='A'&&s[i+1]<='Z') && (s[i-1]<=s[i+1])) { ch = s[i-1] + 1; while(ch < s[i+1]) { printf("%c", ch); ch++; } } ///else if((s[i-1]>='0'&&s[i-1]<='9') && (s[i+1]<='0'&&s[i+1]<='9') && (s[i-1]<=s[i+1])) else if((s[i-1]>='0'&&s[i-1]<='9') && (s[i+1]>='0'&&s[i+1]<='9') && (s[i-1]<=s[i+1])) { ch = s[i-1] + 1; while(ch < s[i+1]) { printf("%c", ch); ch++; } } else printf("-"); } } printf("\n"); } return 0; } /*************************************************** User name: jk160630 Result: Accepted Take time: 0ms Take Memory: 104KB Submit time: 2017-02-04 21:42:00 ****************************************************/ 以下为wrong answer代码 (一直未找出错误在哪里,希望有小伙伴可以指点留言) #include <stdio.h> #include <string.h> #define MAXN 1400 int main() { char s[MAXN]; int T, i, len; scanf("%d", &T); getchar(); while(T--) { scanf("%s", s); len = strlen(s); if(len > 1) { for(i = 0; i < len-2; i++) { if(s[i] == s[i+2] && s[i+1] == '-') { printf("%c", s[i]); i += 1; } else if((s[i]>='a'&&s[i]<='z') && s[i+1] == '-' && (s[i+2]>=s[i]&&s[i+2]<='z')) { for(; s[i] < s[i+2]; s[i]++) printf("%c", s[i]); i += 1; } else if((s[i]>='A'&&s[i]<='Z') && s[i+1]=='-' && (s[i+2]>=s[i]&&s[i+2]<='Z')) { for(; s[i] < s[i+2]; s[i]++) printf("%c", s[i]); i += 1; } else if((s[i]>='0'&&s[i]<='9') && s[i+1]=='-' && (s[i+2]>=s[i]&&s[i+2]<='9')) { for(; s[i]<s[i+2]; s[i]++) printf("%c", s[i]); i += 1; } else printf("%c", s[i]); } i = len-3; if(s[i] == s[i+2] && s[i+1] == '-') { printf("%c", s[i+2]); } else if((s[i]>='a'&&s[i]<='z') && s[i+1] == '-' && (s[i+2]>=s[i]&&s[i+2]<='z')) { printf("%c", s[i+2]); } else if((s[i]>='A'&&s[i]<='Z') && s[i+1]=='-' && (s[i+2]>=s[i]&&s[i+2]<='Z')) { printf("%c", s[i+2]); } else if((s[i]>='0'&&s[i]<='9') && s[i+1]=='-' && (s[i+2]>=s[i]&&s[i+2]<='9')) { printf("%c", s[i+2]); } else { printf("%c", s[i+1]); printf("%c", s[i+2]); } printf("\n"); } else printf("%s\n", s); } return 0; } /*************************************************** User name: jk160630 Result: Wrong Answer Take time: 4ms Take Memory: 104KB Submit time: 2017-02-04 21:46:02 ****************************************************/ [sdut]: http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Contest/contestproblem/cid/2002/pid/1916
相关 字符串扩展及数值扩展 字符串扩展及数值扩展 故心故心故心故心小故冲啊 -------------------- 文章目录 字符串扩展及数值扩展 一、字符串扩展 怼烎@/ 2022年11月21日 11:41/ 0 赞/ 271 阅读
相关 字符串扩展→模板字符串 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> 心已赠人/ 2022年10月01日 12:48/ 0 赞/ 332 阅读
相关 字符串扩展 字符串扩展 Time Limit: 1000MS Memory Limit: 65536KB Problem Description Tom有些时候为了记录的方 痛定思痛。/ 2022年09月29日 06:32/ 0 赞/ 259 阅读
相关 字符串扩展 think: 1、一定要注意细节,一失足成千古恨 2、学会灵活变通 [sdut原题链接][sdut] 字符串扩展 Time Limit: 1000MS Memo 怼烎@/ 2022年07月11日 18:57/ 0 赞/ 291 阅读
相关 字符串扩展 Problem Description Tom有些时候为了记录的方便,常常将一些连续的字符用扩展符'-'简单表示。比如abcdefg可以简写为a-g,即用起始的字符和终止 比眉伴天荒/ 2022年07月11日 13:03/ 0 赞/ 275 阅读
相关 java练习——字符串扩展 字符串扩展 Time Limit: 1000 ms Memory Limit: 65536 KiB [Submit][] [Statistic][] Problem 末蓝、/ 2022年05月26日 04:24/ 0 赞/ 171 阅读
相关 字符串扩展 Problem Description Tom有些时候为了记录的方便,常常将一些连续的字符用扩展符’-‘简单表示。比如abcdefg可以简写为a-g,即用起始的字符和终止字符 本是古典 何须时尚/ 2022年04月14日 05:48/ 0 赞/ 335 阅读
相关 字符串扩展→模板字符串(实例) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> 水深无声/ 2022年01月17日 04:47/ 0 赞/ 422 阅读
相关 字符串的扩展 字符串的扩展 字符的unicode表示法字符串的遍历器接口直接输入U 2028和U 2029json.stringify()的改造模板字符串 模板编译标签模板模板字符串的限 素颜马尾好姑娘i/ 2021年07月24日 23:27/ 0 赞/ 611 阅读
相关 字符串扩展类 using System; using System.Collections.Generic; using System.IO; using System.Linq; u... 系统管理员/ 2021年03月25日 14:48/ 0 赞/ 661 阅读
还没有评论,来说两句吧...