CF1547B.Alphabetical Strings

入门

通过率:0%

时间限制:2.00s

内存限制:512MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

A string ss of length nn (1≤n≤261 \le n \le 26) is called alphabetical if it can be obtained using the following algorithm:

  • first, write an empty string to ss (i.e. perform the assignment ss := "");
  • then perform the next step nn times;
  • at the ii-th step take ii-th lowercase letter of the Latin alphabet and write it either to the left of the string ss or to the right of the string ss (i.e. perform the assignment ss := c+sc+s or ss := s+cs+c, where cc is the ii-th letter of the Latin alphabet).

In other words, iterate over the nn first letters of the Latin alphabet starting from 'a' and etc. Each time we prepend a letter to the left of the string ss or append a letter to the right of the string ss. Strings that can be obtained in that way are alphabetical.

For example, the following strings are alphabetical: "a", "ba", "ab", "bac" and "ihfcbadeg". The following strings are not alphabetical: "z", "aa", "ca", "acb", "xyz" and "ddcba".

From the given string, determine if it is alphabetical.

长度为 nn(1≤n≤261 \le n \le 26)的字符串 ss 被称为字母序的(alphabetical),当且仅当它可通过如下算法生成:

  • 首先,将空字符串赋给 ss(即执行赋值操作 ss := "");
  • 然后,重复执行下一步 nn 次;
  • 在第 ii 步中,取拉丁字母表中第 ii 个小写字母,并将其写入字符串 ss 的左侧或右侧(即执行赋值操作 ss := c+sc+s 或 ss := s+cs+c,其中 cc 为拉丁字母表中第 ii 个字母)。

换言之,我们依次遍历拉丁字母表的前 nn 个字母(从 'a' 开始,依此类推)。每次操作均将当前字母前置(prepending)到字符串 ss 的左侧,或后置(appending)到字符串 ss 的右侧。所有能通过这种方式得到的字符串均为字母序的。

例如,以下字符串是字母序的:“a”、“ba”、“ab”、“bac” 和 “ihfcbadeg”。以下字符串不是字母序的:“z”、“aa”、“ca”、“acb”、“xyz” 和 “ddcba”。

给定一个字符串,请判断它是否为字母序的。

输入格式

The first line contains one integer tt (1≤t≤1041 \le t \le 10^4) — the number of test cases. Then tt test cases follow.

Each test case is written on a separate line that contains one string ss. String ss consists of lowercase letters of the Latin alphabet and has a length between 11 and 2626, inclusive.

第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4)—— 表示测试用例的数量。随后是 tt 个测试用例。

每个测试用例占单独一行,包含一个字符串 ss。字符串 ss 由拉丁字母的小写字母组成,长度在 11 到 2626(含)之间。

输出格式

Output tt lines, each of them must contain the answer to the corresponding test case. Output YES if the given string ss is alphabetical and NO otherwise.

You can output YES and NO in any case (for example, strings yEs, yes, Yes and YES will be recognized as a positive answer).

输出 tt 行,每行必须包含对应测试用例的答案。如果给定字符串 ss 是字母序的,则输出 YES;否则输出 NO。

您可以用任意大小写形式输出 YES 和 NO(例如,字符串 yEs、yes、Yes 和 YES 均会被识别为肯定回答)。

输入输出样例

  • 输入#1

    11
    a
    ba
    ab
    bac
    ihfcbadeg
    z
    aa
    ca
    acb
    xyz
    ddcba

    输出#1

    YES
    YES
    YES
    YES
    YES
    NO
    NO
    NO
    NO
    NO
    NO

说明/提示

The example contains test cases from the main part of the condition.

该示例包含了条件主体部分的测试用例。

输入解题思路,AI测评打分。不知道怎么写?

首页