【题解】AT yahoo procon2017 qual a题解
AT_yahoo_procon2017_qual_a 题解
思路分析
题目要求我们判断输入的是否为字符串 yahoo的全排列。
若一个字符串为字符串 yahoo的全排列,则它所含有的全部字母一定为字符串 yahoo所含有的全部字母。即要求判断下列条件是否都成立。
- y 的个数为一个。
- a 的个数为一个。
- h 的个数为一个。
- o 的个数为两个。
统计个数后判断即可。
关键代码
int y = 0, a = 0, h = 0, o = 0;
for(int i = 0;i < s.size();i++)
{
y += (s[i] == 'y');// 因为有就为1,无就为0。刚好起到统计的作用。
a += (s[i] == 'a');
h += (s[i] == 'h');
o += (s[i] == 'o');
}
if(y == 1 && a == 1 && h == 1 && o == 2)
{
cout << "YES" << endl;
}
else
{
cout << "NO" << endl;
}

浙公网安备 33010602011771号