题解 CF1145F 【Neat Words】

这题其实是一道很水的字符串模拟,不要被难度骗了

CF恶意评分又不是一两天了(雾)

注意题目中说到的

由直线或都是由曲线构成的

是指该字母的笔画(我理解题目理解了半天$qwq$)

具体思路:

  • 1 应用$map$将由直线(或者曲线)构成的字母的映射值设为1
  • 2 计算该字符串的所有对应的映射值之和,因为题目要求全为直线或全为曲线,所以当总和为$len$($len$为字符串长度)或$0$时,输出$YES$,否则输出$NO$

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include<bits/stdc++.h>
using namespace std;
string s;
map<char,bool> p;
int main()
{
ios::sync_with_stdio(false);
p['A']=1;//打表
p['E']=1;
p['F']=1;
p['H']=1;
p['I']=1;
p['K']=1;
p['L']=1;
p['M']=1;
p['N']=1;
p['T']=1;
p['V']=1;
p['W']=1;
p['X']=1;
p['Y']=1;
p['Z']=1;
cin>>s;
int sum=0;
for(int i=0;i<s.size();i++) sum+=p[s[i]];//统计映射值之和
if(sum==s.size() or sum==0) cout<<"YES";//判断
else cout<<"NO";
return 0;
}