前言: {\color{Blue}前言:} 前言:
- 本系列题使用的是,“PTA中的团体程序设计天梯赛——练习集”的题库,难度有L1、L2、L3三个等级,分别对应团体程序设计天梯赛的三个难度。
- 更新取决于题目的难度,和学校的事情,但尽可能保证每日更新,若没更新次日补上。
- 这道题,我认为还是有一个小难点的,可以试一下
- 我的方法可能不是最简单的,如有什么好的建议,欢迎各位CSDN的朋友告诉我
题目
“666”是一种网络用语,大概是表示某人很厉害、我们很佩服的意思。最近又衍生出另一个数字“9”,意思是“6翻了”,实在太厉害的意思。如果你以为这就是厉害的最高境界,那就错啦 —— 目前的最高境界是数字“27”,因为这是 3 个 “9”!
本题就请你编写程序,将那些过时的、只会用一连串“6666……6”表达仰慕的句子,翻译成最新的高级表达。
输入格式
输入在一行中给出一句话,即一个非空字符串,由不超过 1000 个英文字母、数字和空格组成,以回车结束。
输出格式:
从左到右扫描输入的句子:如果句子中有超过 3 个连续的 6,则将这串连续的 6 替换成 9;但如果有超过 9 个连续的 6,则将这串连续的 6 替换成 27。其他内容不受影响,原样输出。
输入样例:
it is so 666 really 6666 what else can I say 6666666666
输出样例:
it is so 666 really 9 what else can I say 27
题解
- 我觉得这里的难点就是:字符串结尾遇到一连串6怎么办
- 所以,我给字符串加了个结束标志,这样的话,当到结尾的时候,就能能够完全计算6的个数,并且输出 9 或者 27 了
sentence = input() # 输入句子
sentence += '#'
result = "" # 存储翻译后的句子
count = 0 # 连续6的计数器
for char in sentence:
if char == '6':
count += 1
else:
if char == '#':
char = ''
if count > 9:
result += '27'+char
elif count > 3:
result += '9'+char
else:
result += '6'*count+char
count = 0
# 输出翻译后的句子
print(result)