鱼C论坛

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

Python:每日一题 286

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

题目不是说仅包含字符串吗?难道允许空字符串?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-11 09:04:14 | 显示全部楼层
那我改一下代码吧
  1. def fun286(s:str):
  2.     if not len(s):return s
  3.     else:
  4.         start_num=0
  5.         return_str=''
  6.         for i in range(1,len(s)):
  7.             if s[i-1]!=s[i]:
  8.                 return_str+=s[i-1]+f'{i-start_num}'
  9.                 start_num=i
  10.         return_str+=s[-1]+f'{len(s)-start_num}'
  11.         if len(return_str)<len(s): return return_str
  12.         else: return s
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

就问你为啥这么皮
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

皮这么一下,我很开心

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

允许空字符串
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-11 20:55:39 | 显示全部楼层
  1. def fun(inputStr):
  2.     if len(inputStr)==0:
  3.         return ""
  4.     charList = []#存储字符
  5.     numList = []#存储数字
  6.     #count 计数器
  7.     #temp 记录字符
  8.     for each in inputStr:
  9.         try:
  10.             if each == temp:
  11.                 count = count + 1
  12.             else:
  13.                 numList.append(count)
  14.                 charList.append(temp)
  15.                 count = 1
  16.                 temp = each
  17.         except:
  18.             temp = each
  19.             count = 1
  20.     numList.append(count)
  21.     charList.append(temp)
  22.     if 2*len(numList)>= len(inputStr):
  23.         return inputStr
  24.     else:
  25.         index = 0
  26.         result =""
  27.         while index<len(numList):
  28.             result = result + charList[index] + str(numList[index])
  29.             index = index + 1
  30.         return result
复制代码
小甲鱼最新课程 -> https://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)
小甲鱼最新课程 -> https://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)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

  14.     if len(str2) >= len(str1):
  15.         return str1
  16.     else:
  17.         return str2
  18. print(fun(str1))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-5 20:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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