鱼C论坛

 找回密码
 立即注册
123
返回列表 发新帖
楼主: zltzlt

Python:每日一题 286

[复制链接]
发表于 2019-12-11 08:57:31 | 显示全部楼层

题目不是说仅包含字符串吗?难道允许空字符串?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-11 09:04:14 | 显示全部楼层
那我改一下代码吧
def fun286(s:str):
    if not len(s):return s
    else:
        start_num=0
        return_str=''
        for i in range(1,len(s)):
            if s[i-1]!=s[i]:
                return_str+=s[i-1]+f'{i-start_num}'
                start_num=i
        return_str+=s[-1]+f'{len(s)-start_num}'
        if len(return_str)<len(s): return return_str
        else: return s
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-11 09:05:33 | 显示全部楼层
阴阳神万物主 发表于 2019-12-8 17:24
我来康康时间怎样,有没有出错数据

就问你为啥这么皮
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-11 11:01:26 | 显示全部楼层
fan1993423 发表于 2019-12-11 09:05
就问你为啥这么皮

皮这么一下,我很开心

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-11 20:22:15 | 显示全部楼层
fan1993423 发表于 2019-12-11 08:57
题目不是说仅包含字符串吗?难道允许空字符串?

允许空字符串
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-11 20:55:39 | 显示全部楼层
def fun(inputStr):
    if len(inputStr)==0:
        return ""
    charList = []#存储字符
    numList = []#存储数字
    #count 计数器
    #temp 记录字符
    for each in inputStr:
        try:
            if each == temp:
                count = count + 1
            else:
                numList.append(count)
                charList.append(temp)
                count = 1
                temp = each
        except:
            temp = each
            count = 1
    numList.append(count)
    charList.append(temp)
    if 2*len(numList)>= len(inputStr):
        return inputStr
    else:
        index = 0
        result =""
        while index<len(numList):
            result = result + charList[index] + str(numList[index])
            index = index + 1
        return result
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-12 08:58:45 | 显示全部楼层
本帖最后由 Jung 于 2019-12-12 09:50 编辑

def Fun286(S):
    L = []
    Lcount = []
    k = 1
    s1 = ''
    for i in range(len(S)):
        a = list(S).pop(i)
        if a in L:
            if a==L[len(L)-1]:
                k += 1
                Lcount[len(Lcount)-1] = k
            else:
                k = 1
                L.append(a)
                Lcount.append(k)
        else:
            k = 1
            L.append(a)
            Lcount.append(k)
    for i1,i2 in zip(L,Lcount):
        s1 = s1 + i1 + str(i2)
    if len(s1)==len(S):
        print(S)
    else:
        print(s1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-12 09:51:22 | 显示全部楼层
def Fun286(S):
    L = []
    Lcount = []
    k = 1
    s1 = ''
    for i in range(len(S)):
        a = list(S).pop(i)
        if a in L:
            if a==L[len(L)-1]:
                k += 1
                Lcount[len(Lcount)-1] = k
            else:
                k = 1
                L.append(a)
                Lcount.append(k)
        else:
            k = 1
            L.append(a)
            Lcount.append(k)
    for i1,i2 in zip(L,Lcount):
        s1 = s1 + i1 + str(i2)
    if len(s1)==len(S):
        print(S)
    else:
        print(s1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-13 08:50:59 | 显示全部楼层
str1 = str(input())
def fun(str1):
    length = len(str1)
    
    list1 = []
    for i in range(length):
        if str1[i] not in list1:
            list1.append(str1[i])
    str2 = ''
    
    for each in list1:
        a = str1.count(each)
        str2 += ('%s%s' % (each,a)) 

    if len(str2) >= len(str1):
        return str1
    else:
        return str2
print(fun(str1))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 21:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表