華為面試題 壓縮字串

2021-07-29 21:36:01 字數 1219 閱讀 2116

通過鍵盤輸入一串小寫字母(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 遍歷一次字串 時間...