Content

我们定义一个字符串是合法的,当且仅当这个字符串是“连续排列”(按照字母表顺序排序)。现在给出 \(n\) 个字符串 \(s_1,s_2,s_3,...,s_n\),判断它们是否合法。

数据范围:\(1\leqslant n\leqslant 100,|s_i|\leqslant 100\) 且 \(s_i\) 仅由小写英文字母组成。

Solution

这道题目关键的一点就在于:给字符串排序。我在 CF975A的题解 中曾详细讲过如何用 \(\texttt{sort}\) 直接给字符串按照字典序排序,利用 string 中的 begin() 和 end() 函数即可。

排完序之后,我们再直接遍历,看当前字符在字母表中的位置是否是前一个字符在字母表中的位置的后面一位,一旦找到不符合这个条件的字符,我们就判定它是不合法的。扫完之后如果全部符合情况,说明它是合法的。

Code

int n;

int main() {
getint(n);
while(n--) {
string s;
cin >> s;
sort(s.begin(), s.end());
int len = s.size(), flag = 1;
_for(i, 1, len - 1)
if(s[i] - s[i - 1] != 1) {
puts("No");
flag = 0;
break;
}
if(flag) puts("Yes");
}
return 0;
}

CF1144A Diverse Strings 题解的更多相关文章

  1. (原创)Codeforces Round #550 (Div. 3) A Diverse Strings

    A. Diverse Strings time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  2. Codeforces1144A(A题)Diverse Strings

    A. Diverse Strings A string is called diverse if it contains consecutive (adjacent) letters of the L ...

  3. CF1320 Div1 D.Reachable Strings 题解

    题目大意 给定一个长为\(n\)的01串\(S\),每次你可以对一个串的三个连续位置做:\(011 \rightarrow 110\),\(110 \rightarrow 011\)的操作. 有\(q ...

  4. POJ2406:Power Strings——题解

    http://poj.org/problem?id=2406 就是给一个串,求其循环节的个数. 稍微想一下就知道,KMP中nxt数组记录了所有可与前面匹配的位置. 那么如果我们的循环节长度为k,有n个 ...

  5. 洛谷 UVA10298 Power Strings 题解

    Analysis 结论:设字符串长度为n,最长相同前后缀的长度为kmp[i],如n%(n-kmp[n])=0,则答案为n/(n-kmp[n]),否则为1. 如果循环节多于一个,以前n-kmp[n]个为 ...

  6. POJ2406 Power Strings 题解 KMP算法

    题目链接:http://poj.org/problem?id=2406 题目大意:给你一个字符串 \(t\) ,\(t\) 可以表示为另一个小字符串循环了 \(K\) 了,求最大的循环次数 \(K\) ...

  7. CF544A Set of Strings 题解

    Content 有一个长为 \(n\) 的字符串 \(q\),试问能否将其划分为 \(k\) 个子串,使得每个子串的首字母都不相等,可以的话输出 \(\texttt{YES}\) 并输出任意一个方案, ...

  8. CF447B DZY Loves Strings 题解

    Content 有一个长度为 \(n\) 的仅含小写字母的字符串 \(s\) 以及 26 个英文小写字母的价值 \(W_\texttt{a},W_\texttt{b},...,W_\texttt{z} ...

  9. CF1547B Alphabetical Strings 题解

    Content 我们有一个空的字符串,第 \(i\) 次操作我们可以将字母表中第 \(i\) 个字母加入字符串的最前面或最后面.我们称一个长度为 \(n\) 的字符串是合法的,当且仅当这个字符串可以通 ...

随机推荐

  1. IDEA生成doc文档-生成chm文档

    首先,打开IDEA,并找到Tools -> Generate JavaDoc- 可供查询的chm比那些HTML页面好看多了. 如果您用过JDK API的chm文档,那么您一定不会拒绝接受其它第三 ...

  2. layui的下拉-多选

    网址: https://hnzzmsf.github.io/example/example_v4.html 1.下载代码: 2.整合layui 3.代码整合: <link rel="s ...

  3. git添加新工程

    git init git remote add origin 码云路径 git pull origin master 代码拉本地后 git add . git commit -m '新添加的文件内容描 ...

  4. System.Web.Optimization

    项目中引用了 System.Web.Optimization 这个程序集,缺少程序集会报错: 命名空间"System.Web"中不存在类型或命名空间名"Optimizat ...

  5. 洛谷 P7450 - [THUSCH2017] 巧克力(斯坦纳树+随机化)

    洛谷题面传送门 9.13 补之前 8.23 做的题,不愧是鸽子 tzc( 首先我们先来探讨一下如果 \(c_{i,j}\le k\) 怎么做,先考虑第一问.显然一个连通块符合条件当且仅当它能够包含所有 ...

  6. 洛谷 P4900 - 食堂(推式子)

    洛谷题面传送门 首先推式子: \[\begin{aligned} ans&=\sum\limits_{i=A}^B\sum\limits_{j=1}^i\{\dfrac{i}{j}\} \en ...

  7. dart系列之:数学什么的就是小意思,看我dart如何玩转它

    目录 简介 dart:math包的构成 math Random 总结 简介 dart也可以进行数学运算,dart为数学爱好者专门创建了一个dart:math包来处理数学方面的各种操作.dart:mat ...

  8. 一个简单但能考察C语言基础的题目

    请看题: #include<stdio.h> int a=1; int main(void) { int a=a; printf("a=d%\n",a); return ...

  9. 对Javascript中的对象Object改变内存及其变量改变的图解

    Object 存储变量时,变量属性的内存改变图解 左边: 对象的内存   中间:变量属性的内存   右边:属性值的内存 [图一]创建一个对象,存obj1 变量--里面存age 属性和属性值--12. ...

  10. 学习java的第八天

    一.今日收获 1.学习完全学习手册上2.3转义字符与2.4运算符两节 二.今日难题 1.没有什么难理解的问题 三.明日目标 1.哔哩哔哩教学视频 2.Java学习手册