代码如下:
s="aAAddjKKklrRRRs"
#不区分大小写,使用upper()将串中字符全部转为大写
s=s.upper()
#a用来存放得到的压缩结果
a=[]
#初始化count为1,用于统计连续相同字符个数
count=1
#遍历,因为判断的是s[i]与s[i+1]是否相同,所以range()的上界设置为len(s)-1
for i in range(len(s)-1):
if s[i]==s[i+1]:
count=count+1
#特殊处理,如果s[i+1]是最后一个字符,且与s[i]相同,则将(s[i+1],count)作为元组添加到a中
if i+1==len(s)-1:
b=(s[i+1],count)
a.append(b)
else:
#若s[i]与s[i+1]不同,则将(s[i],count)作为元组加入a中
b=(s[i],count)
a.append(b)
count=1
#特殊处理,若s[i+1]是最后一个元素,且与s[i]不同,则表示最后一种字符只出现一次,将(s[i+1],1)作为元组加入a中
if i+1==len(s)-1:
b=(s[i+1],1)
a.append(b)
#使用字符串拼接进行格式处理,遍历a,i[0]为每个元组第0个元素,即哪种字符,i[i]为元组第1个元素,即count,连续字符个数
c=""
for i in a:
c+=f"({i[0]},{i[1]})"
print(c)
代码中已经写入相关注释,如有问题,欢迎讨论。不算很难的一道头歌题目