找字符
Description
有一天,小明编了一个程序,能很快找出一个字符串中出现次数最多的字符,你能做到吗?
输入:一个字符串(长度不超过50)
输出:按字符在字符串中出现的先后顺序,显示出现次数最多的字符
Input
一个字符串(长度不超过50)
Output
按字符在字符串中出现的先后顺序,显示出现次数最多的字符
Sample Input 1
ACABBCCDDB
Sample Output 1
CB
Source
2009年合肥市蜀山区小学生信息学竞赛试题
#include <iostream>
#include <cstring>
#include <queue>
using namespace std;
char chArr[51];
int arrAlph[26];
int main(){
scanf("%s",chArr);
queue<char> q;
int i=0;
for(;i<strlen(chArr);i++){
if (arrAlph[chArr[i]-'A'] == 0){//首次出现,用队列记录顺序
q.push(chArr[i]);
}
arrAlph[chArr[i]-'A']++;
}
int maxNum = arrAlph[0];
for(int i=1;i<26;i++){
if(maxNum<arrAlph[i]){
maxNum=arrAlph[i];
}
}
while(!q.empty()){
if(arrAlph[q.front()-'A'] <maxNum){
q.pop();
}
else{
cout<<q.front();
q.pop();
}
}
return 0;
}