QOJ.ac

QOJ

Límite de tiempo: 5 s Límite de memoria: 1024 MB Puntuación total: 27

#5848. 字母印章

Estadísticas

Roland 是一位高中数学老师。每天,他都会收到学生们交上来的数百份试卷。对于每一份试卷,他都会仔细地给出一个字母等级:'A'、'B' 或 'C'。(Roland 的学生们太聪明了,不会得到 'D' 或 'F' 这样低的等级。)一旦所有等级都确定了,Roland 就会把试卷交给他的助手——也就是你。你的工作是在每份试卷上盖上正确的等级印章。

你有一个低科技含量但功能齐全的字母印章。要打印一个字母,你需要将对应于该字母的特殊印版安装在印章前端,蘸上墨水,然后盖在试卷上。

有趣的是,当你想要更换字母时,不必取下旧印版,只需在旧印版上直接覆盖一个新的印版即可。事实上,你可以将印章上的印版看作一个栈,支持以下操作:

  • 将一个字母压入栈顶。(这相当于在印章前端安装一个新的印版。)
  • 从栈顶弹出一个字母。(这相当于从印章前端移除一个印版。)
  • 打印栈顶的字母。(这相当于实际使用印章。)当然,要执行此操作,栈中必须有字母。

给定一个字母等级序列('A'、'B' 和 'C'),你需要多少次操作才能按顺序打印出整个序列?栈最初是空的,并且在完成任务后必须清空。不过,在此过程中,你可以无限量地使用每种印版。

例如,如果你想打印序列 "ABCCBA",你可以通过 12 次操作完成,如下所示:

输入格式

输入文件的第一行包含测试用例的数量 T。接下来是 T 个测试用例,每行一个。每一行包含一个字符串 S,表示你想要按顺序打印出的字符序列。

输出格式

对于每个测试用例,输出一行 "Case #x: N",其中 x 是测试用例编号(从 1 开始),N 是打印出 S 所需的最少栈操作次数。

S 是一个非空字符串,仅包含字母 'A'、'B' 和 'C'。

样例

输入格式 1

2
ABCCBA
AAABAAB

输出格式 1

Case #1: 12
Case #2: 13

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.