編寫乙個函式,刪除字串中出現次數最少的字元,若多個字元出現次數一樣,則都刪除。輸出刪除這些單詞後的字串,字串中其它字元保持原來的順序。 格式說明: 字串只包含字母,不可能為空串,不包含空格,單詞只由小寫英文本母組成,輸入的字串長度不會超過20
個char
。
演算法思路:
(1)定義乙個長度為26的整型陣列
下標從0-25分別表示a-z這26個小寫字母,用來儲存字串中各個字元出現的次數
(因為『a』-『a』=0,『z』-『a』=25剛好與陣列的下標對應)
「abcdddeeffffxxyz」各個字元出現的次數如下圖所示:
(2)求出陣列中的最小值即字串中字元出現的最小次數min(找出陣列中第乙個不為零的值,從前往後去比較大小,找出最小值)。
(3)定義乙個空字元陣列用來儲存新字串(將出現次數大於min的字元按照順序存入空陣列中,並在末尾加上字串結束標誌'\0')。
(4)演算法結束。
[cpp]view plain
copy
#include
#include
#include
char
* change(
char
*str);
//定義並初始化長度為26的字元陣列,用來儲存各個小寫字母出現的次數
intlen = strlen(str);
//字串的長度
for(
inti = 0 ; i
//經過以上**,已經將各個小寫字母出現的次數儲存在alpha陣列中
intmin = 0;
for(i = 0 ; i
for(i = 0 ; i
} char
* newstr = (
char
*)malloc(
sizeof
(char
) * len);
//用來儲存改變後的字串
char
*p = str;
intnum=0;
while
(*p)
p++;
} newstr[num]='\0'
; return
newstr;
} void
main()
刪除字串中出現次數最少的字元
編寫乙個函式,刪除字串中出現次數最少的字元,若多個字元出現次數一樣,則都刪除。輸出刪除這些單詞後的字串,字串中其它字元保持原來的順序。格式說明 字串只包含字母,不可能為空串,不包含空格,單詞只由小寫英文本母組成,輸入的字串長度不會超過20個char 演算法思路 1 定義乙個長度為26的整型陣列,每個...
實現刪除字串中出現次數最少的字元
題目 華為 描述 實現刪除字串中出現次數最少的字元,若多個字元出現次數一樣,則都刪除。輸出刪除這些單詞後的字串,字串中其它字元保持原來的順序。題目類別 字串 難度 中級 執行時間限制 10sec 記憶體限制 128mbyte 階段 入職前練習 輸入 字串只包含小寫英文本母,不考慮非法輸入,輸入的字串...
實現刪除字串中出現次數最少的字元
實現刪除字串中出現次數最少的字元,若多個字元出現次數一樣,則都刪除。輸出刪除這些單詞後的字串,字串中其它字元保持原來的順序。字串只包含小寫英文本母,不考慮非法輸入,輸入的字串長度小於等於20個位元組。include include using namespace std const int maxs...