題目連結: https://zerojudge.tw/ShowProblem?problemid=d267
# 解題思路
每次讀到字就將其用 tolower () 轉為小寫,在將其次數記錄下來,之後再找出最大值,再強轉最大值的數字就好
(也可以用 map 紀錄次數喔~)
# 程式碼
#include <iostream> | |
#include <string> | |
#include <cctype> | |
#include <cstring> | |
using namespace std; | |
int main() { | |
int length,max,n; | |
int ch[26]; | |
string s; | |
cin >> n; | |
cin.ignore(); | |
for(int j=0;j<n;j++){ | |
getline(cin,s); | |
memset(ch,0,sizeof(ch)); | |
length=s.length(); | |
max=0; | |
for(int i=0;i<length;i++){ | |
if (isalpha(s[i])) ch[tolower(s[i])-'a']++; | |
} | |
for(int i=0;i<26;i++){ | |
if (max<ch[i]) max=ch[i]; | |
} | |
for(int i=0;i<26;i++){ | |
if (ch[i]==max) cout << (char)('a'+i); | |
} | |
cout <<endl; | |
} | |
} |