首先A题(一个difficultly为21的题卡了我20分钟)
Problem Statement
You are given a non-empty string \(S\) consisting of uppercase and lowercase English letters. Determine whether the following condition is satisfied:
- The first character of \(S\) is uppercase, and all other characters are lowercase.
(放着你们也没人看得懂)
问题陈述
给你一个由大写和小写英文字母组成的非空字符串 \(S\)。请判断是否满足以下条件:\(S\) 的第一个字符是大写字母,其他所有字符都是小写字母。
思路
就是判断大小写
第一遍代码(WA)
using namespace std;
int main(){
string a;
cin >> a;
bool flag = 1;
for(int i = 0;i < a.length();i++){
if(i == 0){
if(a[i] > 'Z' && a[i] < 'A'){
flag = 0;
}
}else{
if(a[i] < 'a' && a[i] > 'z'){
flag =0;
}
}
}
if(flag) cout << "Yes";
else cout << "No";
return 0;
}
你猜怎么着,他WA了12个点,样例WA一个
后来自己造了一组数据把自己hack掉了(运算符都能写错)
后来改了一下
using namespace std;
int main(){
string a;
cin >> a;
bool flag = 1;
for(int i = 0;i < a.length();i++){
if(i == 0){
if(a[i] > 'Z' || a[i] < 'A'){
flag = 0;
}
}else{
if(a[i] < 'a' || a[i] > 'z'){
flag = 0;
}
}
}
if(flag) cout << "Yes";
else cout << "No";
return 0;
}
AC的,懂的都懂
B Problem Statement
You are given a string \(S\) consisting of lowercase English letters. Find the character that appears most frequently in \(S\). If multiple such characters exist, report the one that comes earliest in alphabetical order.
问题陈述 给你一个由小写英文字母组成的字符串 \(S\)。请找出在 \(S\) 中出现频率最高的字符。如果存在多个这样的字符,请按字母顺序找出最早出现的字符。
乍一看一个数组存状态就结束了,
但是
还真是一个数组
#include<bits/stdc++.h>
using namespace std;
int main() {
string str;
cin >> str;
int a[128] = {};
for (char c : str) {
a[c]++;
}
char ans = 'a';
for (char c = 'b'; c <= 'z'; c++) {
if (a[c] > a[ans]) {
ans = c;
}
}
cout << ans << endl;
}
跟种树题有点相似但不完全一样)
E有思路:
暴力枚举有没有包含项,有就输出Yes,循环结束都没有就输出No
CDE明天再搞(
标签:字符,string,WA,int,VP,flag,ABC388,日结,cout From: https://www.cnblogs.com/Gary-NotFound/p/17998109