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的待擴充套件字串.
每組測試資料輸出一行擴充套件後的字串。
3adea-g-m02
acm-0-5-a-ac-cm-m-a-ac-cm-m
welcometothe3rdacm/icpccampusprogrammingcontestofsdut-1-3-a-z-a-z
adeabcdefghijklm02acm-012345-aaccmm-aaccmm
welcometothe3rdacm/icpccampusprogrammingcontestofsdut-123-a-z-a-z
(吐槽:在sdutoj上這個題只支援scanf輸入,gets()必錯,本人以九次wa驗證)
#include#includeint main()
{ int n,m,k;
char a[10010];
scanf("%d",&n);
while(n--)
{scanf("%s",a);
char j;
k=strlen(a);
for(int i=0; i='a'&&a[i-1]<='z'&&a[i+1]>='a'&&a[i+1]<='z')
{for( j=a[i-1]+1; j='0'&&a[i-1]<='9'&&a[i+1]>='0'&&a[i+1]<='9')
{for( j=a[i-1]+1; j='a'&&a[i-1]<='z'&&a[i+1]>='a'&&a[i+1]<='z')
{for( j=a[i-1]+1; j
SDUT ACM 1916 字串擴充套件
include includeint main char str 1100 ch int t,k,i scanf d n t while t gets str k strlen str for i 0 i 0 str i 1 9 str i 1 0 str i 1 9 str i 1 str i 1...
字串擴充套件
真心的不應該!一天也沒做幾個題,自己太隨便,一些問題本身並不難,都是自己不按正常思路想。做題應該一步乙個腳印,明白自己下一步要幹嘛,不要憑空想象,然後再填補漏洞,智者會把錯誤扼殺在搖籃中!tom有些時候為了記錄的方便,常常將一些連續的字元用擴充套件符 簡單表示。比如abcdefg可以簡寫為a g,即...
字串擴充套件
problem description tom有些時候為了記錄的方便,常常將一些連續的字元用擴充套件符 簡單表示。比如abcdefg可以簡寫為a g,即用起始的字元和終止字元中間加上乙個擴充套件符 來表示這個字串。但是為了處理的方便,tom又必須將這些我們簡單記法擴充套件成原來的字串。很明顯要是人工...