# 法1:
N=int(input().strip())#输入题目N
for i in range(N):
A=input() #输入字符串
n=1 #记录相邻相同字符的个数
s = "" #定义空字符串
for j in range(len(A)-1):
if A[j]!=A[j+1]: #判断前后字符是否相同
if n!=1: #不相同且数量不为1 则输出数量和字符
s=s+str(n)+A[j]
n=1 #重置字符数量
else:
s=s+A[j]
else: #相同则n+1
n=n+1
if j==len(A)-2 and A[j]!=A[j+1]:#若倒数第二个字符与最后一个字符不相同,直接加上最后一个
s=s+A[j+1]
if j==len(A)-2 and A[j]==A[j+1]:
s=s+str(n)+A[j]#若倒数第二个字符与最后一个字符相同,且n的数量不为1,加上数量n最后一个
print(s)
# 法2:
N = int(input()) #定义n
for i in range(N):
s = input() #记录输入的字符串
d = {} #定义字典
for j in s:
d[j] = d.get(j,0) + 1 #把每个字符串的字符逐个存进字典 并且记录个数
for k in d.items(): #k[0]为字母 k[1]为数量
if k[1] == 1: #k[1]为改字母附近只有一个
print(k[0],end='')
else:
print(str(k[1])+k[0],end='')
print()
0.0分
0 人评分
C语言训练-求函数值 (C语言代码)浏览:600 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:504 |
Cylinder (C语言描述,蓝桥杯)浏览:1279 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:913 |
打印十字图 (C语言代码)浏览:2822 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:1483 |
【亲和数】 (C语言代码)浏览:628 |
图形输出 (C语言代码)浏览:1422 |
C二级辅导-进制转换 (C语言代码)浏览:750 |
陈教主的三角形 (C语言代码)浏览:1196 |