题解 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;
}
posted @   HappyBobb  阅读(2)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示