CF2178A Yes or Yes
题目描述
去年圣诞节,你的朋友 Fernando 送了你一个只由字符 $\mathtt{Y}$ 和 $\mathtt{N}$ 组成的字符串 $s$,分别代表“Yes”和“No”。
你可以对 $s$ 重复执行以下操作:
- 选择任意两个相邻的字符,并将它们用它们的[逻辑或](https://en.wikipedia.org/wiki/Logical_disjunction)替换。
具体来说,在每次操作中,你可以选择一个下标 $i$($1 \leq i \leq |s|-1$),移除字符 $s_i$ 和 $s_{i+1}$,然后插入:
- 如果 $s_i$ 或 $s_{i+1}$ 中至少有一个为 $\mathtt{Y}$,则插入一个 $\mathtt{Y}$;
- 如果 $s_i$ 和 $s_{i+1}$ 都为 $\mathtt{N}$,则插入一个 $\mathtt{N}$。
注意,每进行一次操作,$s$ 的长度会减少 $1$。
不过,Fernando 不希望你合并 "Yes OR Yes",因为他因某首歌而留下了心理阴影。
请判断是否存在一种方案,可以通过不断执行上述操作,将 $s$ 缩减为一个字符,并且在过程中永远不会合并两个 $\mathtt{Y}$。
输入格式
每个测试点包含多组测试用例。第一行为测试用例个数 $t$($1 \le t \le 500$)。接下来的每组测试用例包含一行字符串 $s$($2\le |s|\le 100$),保证 $s_i = \mathtt{Y}$ 或 $\mathtt{N}$。
输出格式
对于每个测试用例,如果存在一种合法方案,可以将字符串缩减为一个字符,且过程中不出现任意一次合并两个 $\mathtt{Y}$,输出 "YES";否则,输出 "NO"。
你可以用任意大小写形式输出答案。例如 "yEs"、"yes"、"Yes" 和 "YES" 都会被认为是肯定的回应。
说明/提示
在第一个测试用例中,你无法合并 $s_1$ 和 $s_2$,因为它们都是 $\mathtt{Y}$。因此答案为 NO。
在第三个测试用例中,存在一条合法的操作序列:$\mathtt{\underline{NN}Y}\to\mathtt{\underline{NY}}\to\mathtt{Y}$。因此答案为 YES。
在第四个测试用例中,首步有两种选择:$\mathtt{YY\underline{YN}Y}\to \mathtt{YYYY}$ 或 $\mathtt{YYY\underline{NY}}\to \mathtt{YYYY}$。但无论哪种选择,都无法继续进行操作而不合并两个 $\mathtt{Y}$。因此答案为 NO。
在第五个测试用例中,存在一条有效的操作序列:$\mathtt{N\underline{NN}NN}\to\mathtt{\underline{NN}NN}\to\mathtt{N\underline{NN}}\to\mathtt{\underline{NN}}\to\mathtt{N}$。因此答案为 YES。
由 ChatGPT 5 翻译