AT_ttpc2015_c おおおかやま
题目描述
在 okayama 国的首都 okayama,有一种字符串被称为“好字符串”,它是指在字符串 `ookayama` 的开头添加任意个(至少 $1$ 个)`o` 字符后得到的字符串。
你的任务是编写一个程序,按照以下规则处理字符串 $S$。
- 步骤 $1$:如果 $S$ 的某个子串是好字符串,则进入步骤 $2$;如果不存在好字符串,则处理结束。
- 步骤 $2$:在 $S$ 的所有好字符串子串中,选择长度最长的那个,记为 $T$。如果有多个长度相同的,选择最靠左的那个。
- 步骤 $3$:如果 $T$ 中存在子串 `oo`,则将最左侧的 `oo` 替换为 `O`,然后进入步骤 $4$;如果不存在,则回到步骤 $1$。
- 步骤 $4$:如果 $T$ 中存在子串 `OO`,则将最左侧的 `OO` 替换为 `o`。无论是否存在,都回到步骤 $3$。
请输出处理结束后的 $S$。至于这个处理结果的用途属于机密信息,你无需知晓。
当某个字符串 $T$ 是 $S$ 的第 $i$ 个字符到第 $j$ 个字符($1 \leq i \leq j \leq |S|$)所组成的字符串时,称 $T$ 是 $S$ 的子串。这里 $|S|$ 表示字符串 $S$ 的长度。
输入格式
输入从标准输入读入,格式如下:
> $S$
第 $1$ 行给出需要处理的字符串 $S$($1 \leq |S| \leq 100$)。保证 $S$ 仅由小写英文字母组成。
输出格式
请输出处理结束后的 $S$,占一行。不要忘记换行。
说明/提示
### 样例解释 1
对于字符串 `ooookayama`,处理过程如下:
1. 步骤 $1$:$S$ 的子串中存在好字符串。
2. 步骤 $2$:所有好字符串子串中,最长的是从第 $1$ 个 `o` 开始的 `ooookayama`,记为 $T$。
3. 步骤 $3$:$T$ 中最左侧的 `oo` 被替换为 `O`,$T$ 变为 `Oookayama`。
4. 步骤 $4$:$T$ 中不存在 `OO`。
5. 步骤 $3$:$T$ 中最左侧的 `oo` 被替换为 `O`,$T$ 变为 `OOkayama`。
6. 步骤 $4$:$T$ 中最左侧的 `OO` 被替换为 `o`,$T$ 变为 `okayama`。
7. 步骤 $3$:$T$ 中不存在 `oo`。
8. 步骤 $1$:$S$ 变为 `okayama`,其子串中不存在好字符串,处理结束。
### 样例解释 2
$S$ 的子串中可能存在多个好字符串。请注意要从最长且最靠左的那个开始处理。另外,虽然输入中不会出现大写字母,但在答案或处理中可能会出现。
### 样例解释 3
字符串 `okayama` 的子串中不存在好字符串。
### 样例解释 4
字符串 `ookayama` 的子串中不存在好字符串。因为好字符串是指在 `ookayama` 的开头添加至少 $1$ 个 `o` 后得到的字符串,所以 `ookayama` 不满足条件。
由 ChatGPT 4.1 翻译