東華OJ基礎題89 字串壓縮

2021-10-03 10:53:25 字數 1143 閱讀 5548

問題描述 :

通過鍵盤輸入字母(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個英文本母的順序總是記不住,每次默寫英文本母的時候,順序總是前後顛倒。明明的爸爸對此相當著急,想有沒有很好的辦法來幫助明明記住字母的順序。一天,明明的爸爸突然想到了乙個遊戲,能夠幫助明明記住英文本母。這個遊戲如下,給明明乙個任意長度的英文本串,其中只包含小寫字母...