#P0478. 数字归位

数字归位

题目描述

你有一个由 012 组成的字符串。
你可以任意多次交换相邻的 01,或相邻的 12(但 02 不能直接交换)。

有趣的是:因为 1 能和两边“沟通”,整个序列其实可以被完全重排!

所以,要得到字典序最小的结果,答案就是——把所有 0 放前面,接着所有 1,最后所有 2

给定初始字符串,请输出这个最优排列。

输入格式

第一行输入一个由 001122 构成的字符串(长度不超过 500500),表示当前小动物们的队伍。

输出格式

输出字典序最小的可达成字符串。

样例

100210
001120

提示

字典序定义:字符串 AA 的字典序比字符串 BB 小,意思是 AA 在字典里排在 BB 前面。

判断方法:

  • 两个字符串从左往右依次比较每个字符,找到第一个不同的位置
  • 哪个字符的 ASCII 码更小,整个字符串的字典序就更小
  • 如果所有字符相同,长度更短的字典序更小