测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A7677. Adjacent Distinct String

编程题 普及/提高-
知识点

题目描述

给你一个由小写英文字母组成的字符串 $S$。

判断是否可以重新排列 $S$ 的字符,使得任意两个相邻字符均不相同;如果可以,请找出其中一种满足条件的排列。

你将得到 $T$ 组测试数据;请对每组数据求解。

输入格式

输入从标准输入给出,格式如下:

> $T$
> $\text{case}_1$
> $\text{case}_2$
> $\vdots$
> $\text{case}_T$

第 $i$ 个 $(1 \le i \le T)$ 测试用例 $\text{case}_i$ 的格式如下:

> $S$

输出格式

按测试用例的顺序输出答案,每个答案之间用换行符分隔。

对于每个测试用例,如果无法重排字符串 $S$ 使得任意两个相邻字符均不相同,则输出 No

否则(即可以重排),设 $S'$ 为满足条件的一种重排结果,并按以下格式输出:

> Yes
> $S'$

若字符串 $S$ 存在多种合法重排方式,则输出任意一种均可。

输入输出样例

输入 #1
3
aiiw
doodoo
aabbababcacababaaba
输出 #1
Yes
iwai
No
Yes
ababacabababacababa

说明/提示

**样例 1 解释:**
考虑第一个测试用例。

iwaiaiiw 的一个重排,且其中任意两个相邻字符均不相同。因此,输出 iwai 是正确的。

其他正确的输出还包括 wiaiiawi

### 约束条件

* $1 \le T \le 3 \times 10^5$
* $S$ 是一个长度在 $1$ 到 $10^6$(含)之间的字符串,仅由小写英文字母组成。
* 所有测试用例中 $S$ 的总长度不超过 $10^6$。
上一题 去做题 下一题