鱼C论坛

 找回密码
 立即注册
楼主: zltzlt

Python:每日一题 286

[复制链接]
发表于 2019-12-8 23:01:18 | 显示全部楼层
  1. #每日一题
  2. def fun1(s):
  3.     def fun(s,i = 0):
  4.         while s[0:1]==s[i:i+1]:
  5.             if s[0:1] == '':
  6.                 return ''
  7.             i += 1
  8.         return s[0:1]+str(i)+fun(s[i:])
  9.     s1 = fun(s)
  10.     return s if len(s) <= len(s1) else s1
复制代码

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +2 收起 理由
zltzlt + 2 + 2 + 2 1174 ms

查看全部评分

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

使用道具 举报

发表于 2019-12-8 23:54:36 | 显示全部楼层

你这不行啊,abbccddaa 这样答案应该是a3b2d2d2,但是你的答案确实abbccddaa
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-8 23:57:18 | 显示全部楼层
pythonsrj 发表于 2019-12-8 23:54
你这不行啊,abbccddaa 这样答案应该是a3b2d2d2,但是你的答案确实abbccddaa

好吧, 我没看清题目,不是求所有的相同的元素
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-9 11:08:11 From FishC Mobile | 显示全部楼层
版主,你好,我是新人,能不能你发答案的时候,把注释附在答案上,这样我们新人可以理解的更清楚一点,大家麻烦顶一下,让版主看到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-9 14:38:41 | 显示全部楼层
本帖最后由 graceasyi 于 2019-12-9 14:40 编辑
  1. def fun286(letters_str):
  2.     if letters_str:
  3.         letter = letters_str[0]
  4.         temp, t = [letter], 0
  5.         for ls in letters_str:
  6.             if ls == letter:
  7.                 t += 1
  8.             else:
  9.                 temp.extend((str(t), ls))
  10.                 letter, t = ls, 1
  11.         temp.append(str(t))
  12.         result = ''.join(temp)
  13.         return result if len(result) < len(letters_str) else letters_str
  14.     else:
  15.         return letters_str


  16. print(fun286("aabcccccaaa"))
  17. print(fun286(""))
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 贡献 +2 收起 理由
zltzlt + 3 + 3 + 2 904 ms

查看全部评分

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

使用道具 举报

发表于 2019-12-9 16:55:14 | 显示全部楼层
  1. def fun286(s):
  2.     so=s
  3.     sl=len(s)
  4.     ch=s[0]
  5.     s_out=''
  6.     count=0
  7.     for i in s:
  8.         if i==ch:
  9.             count+=1
  10.         else:
  11.             s_out+=ch+str(count)
  12.             ch=i
  13.             count=1
  14.     else:
  15.         s_out+=ch+str(count)
  16.     if len(s_out)<sl:
  17.         return s_out
  18.     else:
  19.         return  so
复制代码

评分

参与人数 1荣誉 +1 鱼币 +1 贡献 +1 收起 理由
zltzlt + 1 + 1 + 1

查看全部评分

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

使用道具 举报

发表于 2019-12-9 19:03:36 | 显示全部楼层
  1. def fun(string):
  2.         if not string:
  3.                 return ''
  4.         new = string[0]
  5.         count = 0
  6.         for x in range(len(string)-1):
  7.                 if string[x] == string[x+1]:
  8.                         count += 1
  9.                 else:
  10.                         new += str(count+1) +string[x+1]
  11.                         count = 0
  12.         return new+ str(count+1) if len(new) + 1 < len(string) else string
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 贡献 +2 收起 理由
zltzlt + 3 + 3 + 2 840 ms

查看全部评分

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

使用道具 举报

发表于 2019-12-9 20:11:11 | 显示全部楼层
  1. def fun1(s):
  2.     s1,s2,i = '',s,0
  3.     while 1:
  4.         if s[:1]=='':
  5.             break
  6.         else :
  7.             if s[:1] == s[i:i+1]:
  8.                 i+=1
  9.             else :
  10.                 s1,s,i = s1+s[:1]+str(i),s[i:],0
  11.     return s1 if len(s1)<len(s2) else s2
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-9 21:15:16 | 显示全部楼层
嗯?今天没有新题吗?又高亮了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-10 13:29:46 | 显示全部楼层
都是高手啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-10 20:48:51 | 显示全部楼层

解答错误

输入:"aabcccccaaa"
输出:"a5b1c5"
预期结果:"a2b1c5a3"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-10 20:50:40 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-10 20:51:10 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-10 20:59:35 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-10 21:00:23 From FishC Mobile | 显示全部楼层
zltzlt 发表于 2019-12-10 20:48
解答错误

输入:"aabcccccaaa"

啊我理解错了题意!马上改!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-10 21:01:03 | 显示全部楼层
Maxiangwang 发表于 2019-12-9 11:08
版主,你好,我是新人,能不能你发答案的时候,把注释附在答案上,这样我们新人可以理解的更清楚一点,大家 ...

每日一题不提供答案,可以参考其他用户的解法。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-10 21:01:53 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-10 21:30:16 | 显示全部楼层

代码已更新
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-10 21:49:44 From FishC Mobile | 显示全部楼层
zltzlt 发表于 2019-12-10 20:48
解答错误

输入:"aabcccccaaa"

已更新
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-11 08:56:04 | 显示全部楼层
@zltzlt 怎么看程序跑的时间?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 09:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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