通過鍵盤輸入一串小寫字母(a~z)組成的字串。請編寫乙個字串壓縮程式,將字串中連續出席的重複字母進行壓縮,並輸出壓縮後的字串。
壓縮規則:
1、僅壓縮連續重複出現的字元。比如字串"abcbc"由於無連續重複字元,壓縮後的字串還是"abcbc"。
2、壓縮欄位的格式為"字元重複的次數+字元"。例如:字串"***yyyyyyz"壓縮後就成為"3x6yz"。
要求實現函式:
void stringzip(const char *pinputstr, long linputlen, char *poutputstr);
輸入pinputstr
: 輸入字串linputlen: 輸入字串長度
輸出 poutputstr
: 輸出字串,空間已經開闢好,與輸入字串等長;
注意:只需要完成該函式功能演算法,中間不需要有任何io的輸入輸出
示例 輸入:「cccddecc」 輸出:「3c2de2c」
輸入:「adef」 輸出:「adef」
輸入:「pppppppp」 輸出:「8p」
將輸入字串拆分成多段,連續相同的字串歸為一段。
用標誌位記錄游標的位置,是指指向每一段字串的第乙個字母,如果後面字元跟它相同,則samenum+1;如果不同,則標誌位+1。
如果samenum的值為1,表示乙個字元相同,則只輸出該字元,flag+1;否則,表示多個字元相同,則輸出相同數量和該字元,flag+2。
注意:輸出相同字元數量時,要進行ascii碼轉換!
void stringzip(const char *pinputstr, long linputlen, char *poutputstr)
else
else}}
}
//
// main.cpp
// stringzip
//// created by jiajie zhuo on 2017/4/1.
//#include using namespace std;
void stringzip(const char *pinputstr, long linputlen, char *poutputstr);
int main(int argc, const char * argv)
考察了對字串操作的掌握情況,還有游標的靈活使用。 面試題 01 06 字串壓縮
字串壓縮。利用字元重複出現的次數,編寫一種方法,實現基本的字串壓縮功能。比如,字串aabcccccaaa會變為a2b1c5a3。若 壓縮 後的字串沒有變短,則返回原先的字串。你可以假設字串中只包含大小寫英文本母 a至z 示例1 輸入 aabcccccaaa 輸出 a2b1c5a3 示例2 字串長度在...
面試題 01 06 字串壓縮
題目描述 字串壓縮。利用字元重複出現的次數,編寫一種方法,實現基本的字串壓縮功能。比如,字串aabcccccaaa會變為a2b1c5a3。若 壓縮 後的字串沒有變短,則返回原先的字串。你可以假設字串中只包含大小寫英文本母 a至z 解題思路 依次統計相同字元出現的次數即可 class solution...
面試題 01 06 字串壓縮
字串壓縮。利用字元重複出現的次數,編寫一種方法,實現基本的字串壓縮功能。比如,字串aabcccccaaa會變為a2b1c5a3。若 壓縮 後的字串沒有變短,則返回原先的字串。你可以假設字串中只包含大小寫英文本母 a至z 示例1 輸入 aabcccccaaa 輸出 a2b1c5a3 遍歷一次字串 時間...