题解 CF1144A 【Diverse Strings】
推广博客:https://www.luogu.com.cn/blog/332914/
本题很容易想到排序,将该字符串排序后每两个相减,不为 1 就是 No,否则就是 Yes。
那么如何判重?根本不用判!如果有重复的排序后肯定是相邻,相减不为1,所以得到 No。
代码:
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
int n;
cin >> n;
while(n--)
{
string s;
cin >> s;
sort(s.begin(), s.end());
for(register string::iterator it = s.begin(); it != s.end() - 1; ++it)
{
if(*(it + 1) - *it != 1)
{
cout << "No\n";
goto Flag;
}
}
cout << "Yes\n";
Flag:{}
}
return 0;
}

浙公网安备 33010602011771号