寒假训练--字符串--字符串扩展
2014-02-11 14:37
204 查看
字符串扩展
Time Limit: 1000MS Memory limit: 65536K
题目描述
Tom有些时候为了记录的方便,常常将一些连续的字符用扩展符'-'简单表示。比如abcdefg可以简写为a-g,即用起始的字符和终止字符中间加上一个扩展符'-'来表示这个字符串。但是为了处理的方便,Tom又必须将这些我们简单记法扩展成原来的字符串。很明显要是人工来做的话必定很麻烦,Tom知道计算机可以帮助他完成这个任务,但是他却不会编程,这的确让他很上火。他知道今天是山东理工大学第三届ACM校赛的日子,届时来自全校的编程爱好者都会来参加比赛,他很兴奋,因为这个困惑他良久的问题终于要被解决了。给你一个含有扩展符'-'的字符串,你的任务就是将他还原成原来的字符串。要求是只处理[a-z]、[A-Z]、[0-9]范围内的字符扩展,即只有当扩展符前后的字符同时是小写字母、大写字母或数字时并且扩展符前面的字符不大于后面的字符才进行扩展,其它情况不进行扩展,原样输出。例如:a-R、D-e、0-b、4-B等字符串都不进行扩展。输入
第一行是一个正整数T,表示共有T组测试数据(T < 100)。下面的T行,每一行包括一个长度不大于1000的待扩展字符串.输出
每组测试数据输出一行扩展后的字符串。示例输入
3 ADEa-g-m02 acm-0-5-a-ac-cm-m-A-AC-CM-M Welcometothe3rdACM/ICPCCampusProgrammingContestofSDUT-1-3-A-z-a-Z
示例输出
ADEabcdefghijklm02 acm-012345-aaccmm-AACCMM Welcometothe3rdACM/ICPCCampusProgrammingContestofSDUT-123-A-z-a-Z
提示
来源
山东理工大学第三届ACM程序设计竞赛示例程序
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int i , n , j ; char s[1002] ; scanf("%d", &n); for(i = 0 ; i < n ; i++) { scanf("%s", s); for(j = 0 ; s[j]!='\0' ; j++) { if(s[j]=='-' &&( (s[j-1] >= '0' && s[j-1] <= s[j+1] && s[j+1] <= '9') || (s[j-1] >= 'a' && s[j-1] <= s[j+1] && s[j+1] <= 'z') || (s[j-1] >= 'A' && s[j-1] <= s[j+1] && s[j+1] <= 'Z') ) ) { s[j] = s[j-1] + 1 ; while(s[j] < s[j+1]) { printf("%c", s[j]); s[j] += 1 ; } } else printf("%c", s[j]); } printf("\n"); } return 0; }
相关文章推荐
- 寒假训练--字符串--字符串函数
- 寒假训练--字符串--串结构练习——字符串匹配
- 寒假训练--字符串--子串
- 寒假训练--字符串--选夫婿1
- 寒假训练--字符串--又见回文
- 寒假集训第一天--结构体训练
- JavaScript基于扩展String实现替换字符串中index处字符的方法
- 算法训练 最长字符串
- 字符串扩展 SDUT 1916
- Java - 华为机试训练 - 字符串反转
- 蓝桥杯寒假训练二1002下一个世界末日(可能就是对闰年的判断方法的掌握)
- C# 扩展方法应用三:字符串处理
- 寒假训练--KMP--Period
- 2016寒假训练——数论
- sql字符串分割扩展方法
- ES6------第四天(字符串的扩展前部分)
- 寒假训练--01背包,完全背包--小P的故事——神奇的Dota
- 字符串 专题训练 · 最长回文子串之Manacher算法
- 寒假训练--01背包完全背包--小P的故事——神奇的换零钱
- 字符串训练