青少儿编程大赛初中组决赛真题-数字谜题,,
青少儿编程大赛初中组决赛真题-数字谜题,,
编程实现: 现在有一串只包含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)
本站内容未经许可,禁止任何网站及个人进行转载。
评论关闭