信息
- ID
- 1622
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者
沿字符串从左到右观察字符变化:每出现一次 XY 就从 X 侧走到 Y 侧,每出现一次 YX 就走回来,因此二者次数之差只可能是 −1,0,1。
当 ∣B−C∣=1 时,可以从对应方向开始交替,再把多余的 XX、YY 插入相应字符段;当 B=C>0 时也可从某个字符开始并回到它,同样能容纳任意数量的同字符相邻对。唯一额外例外是 B=C=0:字符串从未改变字符,只能全为 X 或全为 Y,所以 A,D 不能同时为正。
综上,当且仅当 ∣B−C∣≤1 且不满足 B=C=0,A>0,D>0 时输出 Yes,时间和空间复杂度均为 O(1)。