CF1251A Broken Keyboard

题目描述

最近,Polycarp 发现他的键盘上有些按键出现了故障。为简化问题,我们假设 Polycarp 的键盘上有 $26$ 个按键(每个拉丁字母各一个)。每个按键要么工作正常,要么出现故障。 为了检查哪些按键需要更换,Polycarp 按顺序按下了一些按键,屏幕上出现了一个字符串 $s$。当 Polycarp 按下字符 $c$ 的按键时,会发生以下两种情况之一: - 如果该按键工作正常,字符串末尾会出现一个字符 $c$; - 如果该按键出现故障,字符串末尾会出现两个字符 $c$。 例如,假设字符 a 和 c 对应的按键工作正常,字符 b 对应的按键出现故障。如果 Polycarp 按下的按键顺序为 a、b、a、c、a、b、a,则他正在输入的字符串变化如下:a $\rightarrow$ abb $\rightarrow$ abba $\rightarrow$ abbac $\rightarrow$ abbaca $\rightarrow$ abbacabb $\rightarrow$ abbacabba。 现在给定一个字符串 $s$,它是在 Polycarp 按下某些按键后出现在屏幕上的。请你帮助 Polycarp 判断哪些按键一定是工作正常的(即,如果这些按键出现故障,是不可能得到该字符串的)。 你可以假设在 Polycarp 输入字符串的过程中,按键的状态不会发生变化:每个按键要么始终正常,要么始终故障。

输入格式

第一行包含一个整数 $t$($1 \le t \le 100$),表示测试用例的数量。 接下来每组测试用例占一行,每行包含一个字符串 $s$,字符串由不少于 $1$ 个且不超过 $500$ 个小写拉丁字母组成。

输出格式

对于每个测试用例,输出一行字符串 $res$。字符串 $res$ 应包含所有确定工作正常的按键所对应的字符,按字母顺序排列,不包含任何分隔符或重复字符。如果所有按键都可能出现故障,则 $res$ 应为空。

说明/提示

由 ChatGPT 4.1 翻译