題目連結: 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;
  }
}
更新於 閱讀次數

用實際行動犒賞爆肝的我😀

Zrn Ye LinePay

LinePay