2276. 复原字符串
1000ms
256MB
简单
字符串
题目描述
回文串是指正读和反读都完全相同的字符串。现在给定一个含有模糊字符(用 `0` 表示)的字符串,请判定是否能将其复原成一个**唯一**的回文串。
- 如果无法复原成回文串,或复原结果不唯一,请输出 `IMPOSSIBLE`。
- 如果能确定唯一的复原结果,请输出该回文串。
输入格式
输入共 2 行:
- 第一行:一个正整数 $n$,表示字符串长度 ($n \le 10^5$)。
- 第二行:一个长度为 $n$ 的字符串,由大写字母和 `0` 组成。
输出格式
输出一行,为复原后的唯一回文串或 `IMPOSSIBLE`。
样例 1
输入 (Input)
5 AB0BA
输出 (Output)
IMPOSSIBLE
样例 2
输入 (Input)
6 BB0A00
输出 (Output)
BBAABB
样例 3
输入 (Input)
6 BB00AA
输出 (Output)
IMPOSSIBLE
- 对于 $30\%$ 的数据,输入中不存在 `0`。
- 对于 $100\%$ 的数据,$n \le 10^5$。
- **唯一性判定**:如果对称位置的一对字符中,一个是字母另一个是 `0`,则 `0` 必须变成该字母;如果两个都是 `0`,则该位置可以填入任何大写字母,导致结果不唯一,应输出 `IMPOSSIBLE`。对于奇数长度字符串的中心位置,如果是 `0`,同样不唯一。
› 输入 stdin
CtrlShiftEnter
‹ 输出 stdout
错误 stderr
操作成功