問題描述 :
通過鍵盤輸入字母(a-z、a-z)組成的字串,字串長度不超過1000。首先將所有字母統一成小寫字母,然後將字串中連續出現的重複字母進行壓縮,並輸出壓縮後的字串。
壓縮規則:
1、僅壓縮連續重複出現的字元。比如字串"abcbc"由於無連續重複字元,壓縮後的字串還是"abcbc"。
2、壓縮欄位的格式為"字元重複的次數+字元"。例如:字串"***yyyyyyz"壓縮後就成為"3x6yz"。
輸入說明 :
你寫的程式需要從標準輸入裝置(通常為鍵盤)中讀入多組測試資料,每組測試資料僅佔一行,每行僅包括字母(a-z、a-z)組成的字串。每組測試資料與其後一組測試資料之間沒有任何空行,第一組測試資料前面以及最後一組測試資料後面也都沒有任何空行。
輸出說明 :
將處理後的字串輸出,行首與行尾無空格,也不輸出多餘空行。
輸入範例 :
ccdecc
cccccc
輸出範例:
2cde2c
6c總結
1.不知道犯的什麼抽,昨天搞了半天,試了好幾次沒成功,今天試了一次就ac了。這個題,看起來很簡單,對我而言,就是特別繞腦子。一開始的思路是從第二個字元開始比較,遇到不同則輸出,而這裡面輸出有包括兩種情況:1.前面有乙個count=1的字元2.有count>1的字元;那麼如何區分,我設定了乙個flag,用來設定其前乙個字元的輸出情況,但是嚴重的問題在於最後乙個字元…,這樣下來,最後乙個字元雖然參與了比較,但是沒有在輸出中體現出來。。。。
2.換思路,本本分分,從第乙個元素進行比較,參考標準也是從自己開始,count用來記錄與當前元素不相同的字元個數
3.太菜了,加油!!!
#include
#include
#include
intmain()
for(i=
0;i(count>1)
else
printf
("%c"
,str[i]);
i+=count;
//這步很關鍵,根據count的大小(反應的是字元相同的個數)來進行i的重新定位
}printf
("\n");
}return0;
}
東華oj 基礎題第89題
89 字串壓縮 問題描述 通過鍵盤輸入字母 a z a z 組成的字串,字串長度不超過1000。首先將所有字母統一成小寫字母,然後將字串中連續出現的重複字母進行壓縮,並輸出壓縮後的字串。壓縮規則 1 僅壓縮連續重複出現的字元。比如字串 abcbc 由於無連續重複字元,壓縮後的字串還是 abcbc 2...
東華大學OJ基礎題 78 字串中找整數
問題描述 對於乙個字串,程式設計找出其中的所有整數。例如,字串 a12bc34d05 其中有整數12 34 5。輸入說明 程式輸入包括多行,每一行都是一串字元,字串長度不超過500。字串中的字元只有字母與數字。輸出說明 程式輸出為多行,每行第乙個數代表所對應的字串中整數的總個數。緊跟其後的依次是每個...
東華OJ 76 字串排序
問題描述 明明剛剛開始學英文,對於26個英文本母的順序總是記不住,每次默寫英文本母的時候,順序總是前後顛倒。明明的爸爸對此相當著急,想有沒有很好的辦法來幫助明明記住字母的順序。一天,明明的爸爸突然想到了乙個遊戲,能夠幫助明明記住英文本母。這個遊戲如下,給明明乙個任意長度的英文本串,其中只包含小寫字母...