我需要创建一个称为compress的函数,该函数通过将任何重复的字母替换为字母和数字来压缩字符串。我的函数应返回字符串的简化版本。我已经能够算出第一个字符,但没有其他任何一个。
例如:
>>> compress("ddaaaff") 'd2a3f2' def compress(s): count=0 for i in range(0,len(s)): if s[i] == s[i-1]: count += 1 c = s.count(s[i]) return str(s[i]) + str(c)
这是压缩函数的简短python实现:
def compress(string): res = "" count = 1 #Add in first character res += string[0] #Iterate through loop, skipping last one for i in range(len(string)-1): if(string[i] == string[i+1]): count+=1 else: if(count > 1): #Ignore if no repeats res += str(count) res += string[i+1] count = 1 #print last one if(count > 1): res += str(count) return res
这里有一些例子:
>>> compress("ddaaaff") 'd2a3f2' >>> compress("daaaafffyy") 'da4f3y2' >>> compress("mississippi") 'mis2is2ip2i'