A7677 | Adjacent Distinct String
时间限制2s
内存限制1024MB
通过 / 提交0/0
题目描述
给你一个由小写英文字母组成的字符串 $S$。
判断是否可以重新排列 $S$ 的字符,使得任意两个相邻字符均不相同;如果可以,请找出其中一种满足条件的排列。
你将得到 $T$ 组测试数据;请对每组数据求解。
判断是否可以重新排列 $S$ 的字符,使得任意两个相邻字符均不相同;如果可以,请找出其中一种满足条件的排列。
你将得到 $T$ 组测试数据;请对每组数据求解。
输入格式
输入从标准输入给出,格式如下:
> $T$
> $\text{case}_1$
> $\text{case}_2$
> $\vdots$
> $\text{case}_T$
第 $i$ 个 $(1 \le i \le T)$ 测试用例 $\text{case}_i$ 的格式如下:
> $S$
> $T$
> $\text{case}_1$
> $\text{case}_2$
> $\vdots$
> $\text{case}_T$
第 $i$ 个 $(1 \le i \le T)$ 测试用例 $\text{case}_i$ 的格式如下:
> $S$
输出格式
按测试用例的顺序输出答案,每个答案之间用换行符分隔。
对于每个测试用例,如果无法重排字符串 $S$ 使得任意两个相邻字符均不相同,则输出
否则(即可以重排),设 $S'$ 为满足条件的一种重排结果,并按以下格式输出:
> Yes
> $S'$
若字符串 $S$ 存在多种合法重排方式,则输出任意一种均可。
对于每个测试用例,如果无法重排字符串 $S$ 使得任意两个相邻字符均不相同,则输出
No。否则(即可以重排),设 $S'$ 为满足条件的一种重排结果,并按以下格式输出:
> Yes
> $S'$
若字符串 $S$ 存在多种合法重排方式,则输出任意一种均可。
输入输出样例
输入 #1
3 aiiw doodoo aabbababcacababaaba
输出 #1
Yes iwai No Yes ababacabababacababa
**样例 1 解释:**
考虑第一个测试用例。
其他正确的输出还包括
### 约束条件
* $1 \le T \le 3 \times 10^5$
* $S$ 是一个长度在 $1$ 到 $10^6$(含)之间的字符串,仅由小写英文字母组成。
* 所有测试用例中 $S$ 的总长度不超过 $10^6$。
考虑第一个测试用例。
iwai 是 aiiw 的一个重排,且其中任意两个相邻字符均不相同。因此,输出 iwai 是正确的。其他正确的输出还包括
wiai 和 iawi。### 约束条件
* $1 \le T \le 3 \times 10^5$
* $S$ 是一个长度在 $1$ 到 $10^6$(含)之间的字符串,仅由小写英文字母组成。
* 所有测试用例中 $S$ 的总长度不超过 $10^6$。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?