2021.10.25 字符串字母统计

【每日一题】2021.10.25

任意输入一串纯字母字符串(区分大小写),要求输出各字母及数量相接的另一个字符串,例如:
输入:s = "aaabbCdddddeeAAAbb"
输出:m = "a3b2C1d5e2fA3b2"

编程语言:包括但不限于Python

import itertools as mi

s = "aaabbCdddddeeAAAbb"

g = mi.groupby(s)
print(''.join([i + str(len(list(j))) for i,j in g]))

题目要求是统计连续的重复字母,所以不能用字典,下面的这个我临时写的一个,功能上应该是可以实现.

data = input("输入:")
newStr = ""
count = 0
s = ""
for index ,elem in enumerate(data):
    if index == 0:
        s = elem # 第一个元素
        newStr += s # 然后加上去第一个元素
        count = 1 # 个数是1
        continue
    # 和上一个元素对比,如果相等
    if elem == data[index - 1]:
        count += 1 # 个数加1
        # 如果是最后一个元素,就直接加入到newStr上面
        if index == len(data) - 1:
            newStr += str(count)
            break
    else:
        # 如果不相等
        newStr += str(count)
        s = elem
        newStr += s
        count = 1
print("输出: {}".format(newStr))

img

如果觉得有用,请点击采纳,谢谢~

# s = "aaabbCdddddeeAAAbb"
s=input('s=')
m = ''
# 统计字母大小写
tempdic = {}
import re

slist = re.findall('[A-Za-z]', s)
for i in slist:
    if tempdic.get(i):
        tempdic[i] += 1
    else:
        tempdic[i] = 1
for k, v in tempdic.items():
    m += k + str(v)
print("m=",m)

img

题目的输出示例多了一个字母 f ,笔误