#P1530. Slurpys

Slurpys

题目描述

识别基于一组限制条件的字符串是一个常见的计算问题。

Slurpy 是一种具有特定属性的字符串。你的程序将读取若干字符串,并判断它们是否为 Slurpy。

Slump 的定义:

  1. 第一个字符是 D'D'E'E'
  2. 第一个字符后跟随一个或多个 F'F'
  3. 这些 F'F' 后面要么是一个 SlumpSlump,要么是一个 G'G'。这个 SlumpSlump 或 'G' 结束了当前 Slump。例如,DFFEFFFG`DFFEFFFG` 是一个 Slump,因为它的第一个字符是 'D',后跟两个 'F',并以 Slump EFFFG`EFFFG` 结束。
  4. 其他情况均不视为 Slump。

Slimp 的定义:

  1. 第一个字符是 'A'。
  2. 如果是两个字符的 Slimp,则第二个字符(也是最后一个字符)是 'H'。
  3. 如果不是两个字符的 Slimp,则它必须是以下两种形式之一:
    • 'A' 后跟 'B',然后是一个 Slimp,最后是一个 'C'。
    • 'A' 后跟一个 Slump,最后是一个 'C'。
  4. 其他情况均不视为 Slimp。

Slurpy 的定义:

一个 Slurpy 是由一个 Slimp 后跟一个 Slump 组成的字符串。

示例:

  • Slumps: DFGDFG, EFGEFG, DFFFFFGDFFFFFG, DFDFDFDFGDFDFDFDFG, DFEFFFFFGDFEFFFFFG
  • 非 Slumps: DFEFFDFEFF, EFAHGEFAHG, DEFGDEFG, DGDG, EFFFFDGEFFFFDG
  • Slimps: AHAH, ABAHCABAHC,ABABAHCCABABAHCC, ADFGCADFGC, ADFFFFGCADFFFFGC, ABAEFGCCABAEFGCC, ADFDFGCADFDFGC
  • 非 Slimps: ABCABC, ABAHABAH, DFGCDFGC, ABABAHCABABAHC,SLIMPSLIMP, ADGCADGC
  • Slurpys: AHDFGAHDFG,ADFGCDFFFFFGADFGCDFFFFFG, ABAEFGCCDFEFFFFFGABAEFGCCDFEFFFFFG
  • 非 Slurpys: AHDFGAAHDFGA, DFGAHDFGAH, ABABCCABABCC

输入格式

第一行包含一个整数 N(1 ≤ N ≤ 10),表示后续有多少个字符串需要判断。接下来的 N 行,每行包含一个长度为 1 到 60 的字母字符串。

输出格式

输出的第一行应为 SLURPYSOUTPUTSLURPYS OUTPUT。接下来的N N 行,每行输出 YESYESNONO,表示对应的输入字符串是否为 Slurpy。最后一行输出 ENDOFOUTPUTEND OF OUTPUT

示例输入与输出

输入数据 1

2
AHDFG
DFGAH

输出数据 1

SLURPYS OUTPUT
YES
NO
END OF OUTPUT

来源

Mid-Atlantic 1996