#B3810. [语言月赛 202307] 扶苏和串

    ID: 8803 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 2 上传者: 标签>2023O2优化字符串(入门)语言月赛

[语言月赛 202307] 扶苏和串

题目背景

众所周知,每个月入门赛的字符串题都是扶苏来枚举 idea 出出来的。

题目描述

给定一个 01 字符串 ss,你可以任选 ss 的一个非空子串,把这个子串在 ss翻转一次。

问你能得到字典序最小的字符串是什么?

形式化的,你可以选择一个区间 [l,r][l, r] 满足 1lrs1 \leq l \leq r \leq |s|,构造一个串 tt 满足:

$$t_i = \begin{cases}s_i, &i < l \text{ 或 } i > r \\ s_{r - (i - l)}, & l \leq i \leq r\end{cases} $$

这里字符串的下标从 11 开始。

最小化字符串 tt 的字典序。

输入格式

输入只有一行一个字符串,表示 ss

输出格式

输出一行一个字符串,表示得到的字典序最小的字符串。

101
011
0010100
0000101

提示

样例 1 解释

s=101s = \texttt{\underline{10}1},翻转下划线标出的子串,得到 t=011t = \texttt{011}

样例 2 解释

s=0010100s = \texttt{00\underline{10100}},翻转下划线标出的子串,得到 0000101\texttt{0000101}

数据规模与约定

下面用 s|s| 表示输入字符串的长度。

  • 20%20\% 的数据,s2|s| \leq 2
  • 40%40\% 的数据,s8|s| \leq 8
  • 另有 10%10\% 的数据,ss 只含字符 1\texttt 1
  • 另有 10%10\% 的数据,ss 只含字符 0\texttt 0
  • 100%100\% 的数据,1s1001 \leq |s| \leq 100ss 只含字符 0,1\texttt{0,1}