1. 程式人生 > >華為筆試-刪除字串中出現次數最少的字元

華為筆試-刪除字串中出現次數最少的字元

題目描述

實現刪除字串中出現次數最少的字元,若多個字元出現次數一樣,則都刪除。輸出刪除這些單詞後的字串,字串中其它字元保持原來的順序。

輸入描述:

字串只包含小寫英文字母, 不考慮非法輸入,輸入的字串長度小於等於20個位元組。

輸出描述:

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

示例1

輸入

abcdd

輸出

dd

程式碼如下

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
    string s;
    while(getline(cin,s))
    {
        int a[26]={0};
        int n=s.size();
        for(int i=0;i<n;++i)
        {
            a[s[i]-'a']++;
        }
        int mi=a[s[0]-'a'];//出現最少的字元次數
        for(int i=1;i<n;++i)
        {
            if (a[s[i]-'a']<mi)
            {
                mi=a[s[i]-'a'];//出現最少的字元次數
            }
        }
        for(int i=0;i<n;++i)
        {
            if (a[s[i]-'a']>mi)
                cout<<s[i];      
        }
        cout<<endl;
    }
    return 0;
}