AcWing591 国家领导人 getline()函数的使用
原题链接
其实就是判重加计数,值得注意的是当输入的字符串中有空格的时候,例如人名的时候,可以用getline()方法。
getchar()在标准输入输出流中,使用的时候同步不能关,
getline()方法是和cin绑定的, 大概格式为:
string s;
getline(cin, s);
#include <bits/stdc++.h>
#define pb push_back
#define fi first
#define se second
#define all(x) (x).begin(), (x).end()
#define SZ(x) (int) (x).size()
using namespace std;
typedef pair<int, int> pii;
typedef long long ll;
typedef vector<int> VI;
typedef double db;
const int N = 110;
int n, cnt[26];
void solve() {
cin >> n;
getchar(); // 吸收空格
string leader;
int maxn = 0;
while (n--) {
memset(cnt, 0, sizeof(cnt));
string cur;
getline(cin, cur);
int tmp = 0;
for (int i = 0; i < SZ(cur); i++) {
if (!cnt[cur[i]-'A']) {
cnt[cur[i]-'A']++;
tmp++;
}
}
if (tmp > maxn) {
maxn = tmp;
leader = cur;
}
if (tmp == maxn) {
for (int i = 0, j = 0; i < SZ(leader) && j < SZ(cur); i++, j++) {
if (leader[i] < cur[i]) break;
else if (leader[i] > cur[i]) {
leader = cur;
break;
}
}
}
}
cout << leader << '\n';
}
int main() {
// ios::sync_with_stdio(false);
// cin.tie(0);
int tt;
cin >> tt;
for (int i = 1; i <= tt; i++) {
cout << "Case #" << i << ": ";
solve();
}
return 0;
}
浙公网安备 33010602011771号