3800与3363

PTA网站是一个编程练习网站。今天的天梯赛练习题如下。

L1-058 6翻了 (15 分)

我的解决办法是如下:

sen=input()
rep=[]
count=0
for i in range(len(sen)):
    if sen[i]=='6':
        end=i
        count+=1
        flag=1
    elif sen[i]!='6':
        count=0
        flag=0
    if count>3 and (i==len(sen)-1 or sen[i+1]!='6'):
        if count<10:
            rep.append([end+1-count,end,'0'])
        elif count>9:
            rep.append([end+1-count,end,'1'])
sen1=sen
for j in rep[-1::-1]:
    if j[2]=='0':
        sen1=sen1.replace(sen[j[0]:j[1]+1],'9')
    elif j[2]=='1':
        sen1=sen1.replace(sen[j[0]:j[1]+1],'27')
print(sen1)

代码语言是python。
这个网站的一个好处是可以使用多种编程语言来解题。


3800与3363_第1张图片
image.png

我的代码解释

第一个循环获取题目要求的满足条件的“6”的字符子串的位置起始下标。
然后再将原始字符串中的需要替换的子串替换成要求的字符串。
替换的时候,这里用了一个小窍门,先将下标列表反转,替换的时候从后往前替换。因为如果从前往后替换的话,第一次替换后,后面的字符下标就都变了。

编程就是一种智力活动,一种思考过程。就和打牌,打游戏一样让人上瘾。

你可能感兴趣的:(3800与3363)