青少儿编程大赛初中组决赛真题-数字谜题,,


编程实现: 现在有一串只包含1,2,3的数字,如果将这串数字中的一个123替换成一个321,算成一次操 作,那么一共要经过多少次操作才能让这串数字中的123全部消失。 例:数字串12123,操作一次:12321,操作一次:32121,一共经过2次操作。

输入描述

输入一串⻓度为n的数字(1≤n<100000),只包含数字1,2,3。

输出描述

输出替换的操作次数。

输入样例

12123

输出样例

2


解析:

1、检查是否包含123:

使用find() 方法检测字符串中是否包含子字符串‘123’ ,如果不包含索引值,返回-1,循环也就结束了。

2、对字符串中的123进行替换,没次只替换一个,记录次数

使用replace(old, new [, max])方法替换,把字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次,为了统计次数,max=1。


参考代码:

n=input()k=0#替换次数#循环执行替换操作while n.find('123')!=-1:#如果包含123,继续执行替换    #把字符串中的123替换成321,只替换1次    n=n.replace('123','321',1)    print(n)#替换过程    k+=1#替换次数加1print(k)

本站内容未经许可,禁止任何网站及个人进行转载。

评论关闭