消除相同的字符串

 1 '''
 2 消消乐游戏
 3 描述:消消乐游戏规则如下:有很多不同颜色的方块,如果在同一条直线上,相同颜色的方块达到一定数量N,则这N个相同颜色的方块被消除(即使大于N个也只消除N个)。剩下的方块将按照顺序向中心集中,集中后如相同颜色的方块数量达到N,继续消除。现以不同的小写英文字母代替不同颜色,请实现消消乐游戏,计算全部消除后剩余的方块。
 4 输入1:输入字符串
 5 输入2:输入字符串长度
 6 输入3:可消除长度
 7 示例:
 8 输入1:aabbbeccceeffaccfcaa
 9 输入2:20
10 输入3:3
11 输出:aaffaccfcaa。
12 解释:连续3个的可消除。aabbbeccceeffaccfcaa,消除bbb、ccc,得到aaeeeffaccfcaa;又可消除eee得aaffaccfcaa。
13 '''
14 '''
15     函数名称:reMoveDuplicates
16     函数功能:消除相同的字符串
17     输入参数:sStr - 待消除的字符串
18                      iStrLen - 待消除的字符串的长度
19                      iNumber - 每次消除的个数
20     输出参数:最大正方形边长
21 '''
22 def reMoveDuplicates(sStr, iStrLen, iNumber):  
23     for item in range(len(sStr)):  
24         if item+iNumber>len(sStr):
25             print(f"已消除{iNumber}位相同的字符串,结果为:",sStr)            
26             return sStr
27         if sStr[item:item+iNumber]==sStr[item]*iNumber:
28             sStr=sStr.replace(sStr[item:item+iNumber],"")  
29             reMoveDuplicates(sStr,len(sStr),iNumber) #循环套删三个相同的数 
30             return   
31     print(f"已消除{iNumber}位相同的字符串,结果为:",sStr)                           
32     return sStr             
33 
34 reMoveDuplicates("aabbbeccceeffaccfcaa",20,3)

 

上一篇:Delphi 变量参数符 const、var、out 使用详解


下一篇:Windows 键盘快捷键