国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

字符串?dāng)U展

2019-11-14 09:57:33
字體:
供稿:網(wǎng)友

think: 1、一定要注意細(xì)節(jié),一失足成千古恨 2、學(xué)會靈活變通

sdut原題鏈接

字符串?dāng)U展 Time Limit: 1000MS Memory Limit: 65536KB

PRoblem Description Tom有些時候?yàn)榱擞涗浀姆奖?,常常將一些連續(xù)的字符用擴(kuò)展符’-‘簡單表示。比如abcdefg可以簡寫為a-g,即用起始的字符和終止字符中間加上一個擴(kuò)展符’-‘來表示這個字符串。但是為了處理的方便,Tom又必須將這些我們簡單記法擴(kuò)展成原來的字符串。很明顯要是人工來做的話必定很麻煩,Tom知道計(jì)算機(jī)可以幫助他完成這個任務(wù),但是他卻不會編程,這的確讓他很上火。他知道今天是山東理工大學(xué)第三屆ACM校賽的日子,屆時來自全校的編程愛好者都會來參加比賽,他很興奮,因?yàn)檫@個困惑他良久的問題終于要被解決了。給你一個含有擴(kuò)展符’-‘的字符串,你的任務(wù)就是將他還原成原來的字符串。要求是只處理[a-z]、[A-Z]、[0-9]范圍內(nèi)的字符擴(kuò)展,即只有當(dāng)擴(kuò)展符前后的字符同時是小寫字母、大寫字母或數(shù)字時并且擴(kuò)展符前面的字符不大于后面的字符才進(jìn)行擴(kuò)展,其它情況不進(jìn)行擴(kuò)展,原樣輸出。例如:a-R、D-e、0-b、4-B等字符串都不進(jìn)行擴(kuò)展。

Input 第一行是一個正整數(shù)T,表示共有T組測試數(shù)據(jù)(T < 100)。下面的T行,每一行包括一個長度不大于1000的待擴(kuò)展字符串.

Output 每組測試數(shù)據(jù)輸出一行擴(kuò)展后的字符串。

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 山東理工大學(xué)第三屆ACM程序設(shè)計(jì)競賽

以下為accepted代碼

#include <stdio.h>#include <string.h>#define MAXN 1400int main(){ char s[MAXN], ch; int T, i, len; scanf("%d", &T); getchar(); while(T--) { scanf("%s", s); ///gets(s);///3676 移除了輸入數(shù)據(jù)中的 '/r',修復(fù)了某些寫法下 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: jk160630Result: AcceptedTake time: 0msTake Memory: 104KBSubmit time: 2017-02-04 21:42:00****************************************************/

以下為wrong answer代碼 (一直未找出錯誤在哪里,希望有小伙伴可以指點(diǎn)留言)

#include <stdio.h>#include <string.h>#define MAXN 1400int 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: jk160630Result: Wrong AnswerTake time: 4msTake Memory: 104KBSubmit time: 2017-02-04 21:46:02****************************************************/
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 商洛市| 德昌县| 丰镇市| 海门市| 洛浦县| 海门市| 抚州市| 年辖:市辖区| 阿勒泰市| 成武县| 汶川县| 保定市| 繁昌县| 苍溪县| 阳谷县| 京山县| 闵行区| 高雄市| 乐都县| 伊金霍洛旗| 化隆| 句容市| 盱眙县| 勐海县| 饶河县| 临西县| 九江市| 潮安县| 古蔺县| 栖霞市| 宁强县| 湛江市| 阿鲁科尔沁旗| 皋兰县| 中卫市| 昆山市| 冷水江市| 正阳县| 化隆| 大化| 宜阳县|