刪除字串中出現次數最少的字元

2021-06-21 16:06:21 字數 1372 閱讀 6394

編寫乙個函式,刪除字串中出現次數最少的字元,若多個字元出現次數一樣,則都刪除。輸出刪除這些單詞後的字串,字串中其它字元保持原來的順序。 格式說明: 字串只包含字母,不可能為空串,不包含空格,單詞只由小寫英文本母組成,輸入的字串長度不會超過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...