鱼C论坛

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

[已解决]Python:每日一题 342

[复制链接]
发表于 2020-3-3 20:46:54 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-3 20:53:26 | 显示全部楼层
zltzlt 发表于 2020-3-3 20:42
解答错误

输入:"ivicc"


这回应该好了
  1. string = input('请输入字符:')

  2. def judge(string):
  3.     list1 = []
  4.     n=0

  5.     while string != '':
  6.         list1.append(string.count(string[0]))
  7.         string = string.replace(string[0],'')

  8.     for each in list1:
  9.         if each%2 != 0:
  10.             n += 1

  11.     if n>1:
  12.         return False
  13.     else:
  14.         return True

  15. print(judge(string))
复制代码

评分

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

查看全部评分

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

使用道具 举报

发表于 2020-3-3 20:55:27 | 显示全部楼层
来晚了,第一拿不了了
  1. def fun342(string):
  2.     dic = dict()
  3.     M = len(string)
  4.     for each in string:
  5.         try:
  6.             dic[each] += 1
  7.         except Exception:
  8.             dic[each] = 1
  9.     if M % 2 == 0:
  10.         for eachKey in dic:
  11.             if dic[eachKey]%2 != 0:
  12.                 return False
  13.             else:
  14.                 pass
  15.         return True
  16.     else:
  17.         state = 2
  18.         for eachKey in dic:
  19.             if dic[eachKey]%2 != 0:
  20.                 state -= 1
  21.             if state == 0:
  22.                 return False
  23.         return True
复制代码

评分

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

查看全部评分

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

使用道具 举报

 楼主| 发表于 2020-3-3 20:55:32 | 显示全部楼层

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

使用道具 举报

 楼主| 发表于 2020-3-3 20:56:04 | 显示全部楼层
TJBEST 发表于 2020-3-3 20:55
来晚了,第一拿不了了

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

使用道具 举报

发表于 2020-3-3 21:00:01 | 显示全部楼层
明天出个有挑战性的题吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-3 21:05:07 | 显示全部楼层
本帖最后由 kinkon 于 2020-3-3 21:39 编辑

感觉还是第一种方法快一点,少了个循环
  1. def f342(s):
  2.     sset, c = set(s), 0   
  3.     if len(s)%len(sset) == 0:return True
  4.     for i in sset:
  5.         if s.count(i)%2:
  6.             c += 1                    
  7.     return True if c == 1 else False
  8.          
复制代码
  1. def p342(s):               
  2.     sset, d, c = set(s), {}, 0
  3.     if len(s)%len(sset) == 0:return True   
  4.     for i in s:
  5.         if i not in d:
  6.             d[i] = 1
  7.         else:
  8.             d[i] += 1               
  9.     for d in d.values():
  10.         if d%2:
  11.             c += 1            
  12.     return True if c == 1 else False
复制代码

评分

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

查看全部评分

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

使用道具 举报

 楼主| 发表于 2020-3-3 21:05:49 | 显示全部楼层
fan1993423 发表于 2020-3-3 21:00
明天出个有挑战性的题吧

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

使用道具 举报

 楼主| 发表于 2020-3-3 21:06:40 | 显示全部楼层


解答错误

输入:"a"
输出:False
预期结果:True

"a" 本身就是回文字符串
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-3 21:07:50 | 显示全部楼层
  1. def fun342(huiwen):
  2.     a = {}
  3.     b = 0
  4.     for i in huiwen:
  5.         if i not in a.keys():
  6.             a[i] = 0
  7.         else:
  8.             a[i] += 1
  9.     for i in a.values():
  10.         if(i % 2==0):
  11.             b += 1
  12.     if b > 1:
  13.         return False
  14.     else:
  15.         return  True
复制代码

应该不会超时,管它呢,先试试

评分

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

查看全部评分

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

使用道具 举报

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

使用道具 举报

发表于 2020-3-3 21:18:53 | 显示全部楼层
  1. def f342():
  2.     str1=input("输入字符串:")
  3.     n=0
  4.     for each_str in str1:
  5.         if  str1.count(each_str)%2:
  6.             n+=1
  7.     if n>1:
  8.         return False
  9.     else:
  10.         return True
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-3 21:19:10 | 显示全部楼层
蒋博文 发表于 2020-3-3 21:07
应该不会超时,管它呢,先试试

40 ms

你是参考这位鱼油的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-3 21:19:27 | 显示全部楼层
本帖最后由 ouyunfu 于 2020-3-3 21:49 编辑
  1. def f342(s:str)->bool:
  2.     m=[s.count(i)%2 for i in set(list(s))].count(1)
  3.     return True if m==0 or m==1 else False
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-3 21:21:09 | 显示全部楼层
zltzlt 发表于 2020-3-3 21:19
40 ms

你是参考这位鱼油的?

没有啊。我打代码之前没有看任何人的,我保证
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-3 21:21:37 | 显示全部楼层
蒋博文 发表于 2020-3-3 21:21
没有啊。我打代码之前没有看任何人的,我保证

感觉有点像而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-3 21:22:43 | 显示全部楼层
zltzlt 发表于 2020-3-3 21:19
40 ms

你是参考这位鱼油的?

再者说了,他的那个方法我见过,是我哥查过的一种方式,我用的是我自己琢磨出来的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-3 21:24:29 | 显示全部楼层
zltzlt 发表于 2020-3-3 21:06
解答错误

输入:"a"

已改,67楼

评分

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

查看全部评分

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

使用道具 举报

 楼主| 发表于 2020-3-3 21:25:57 | 显示全部楼层
kinkon 发表于 2020-3-3 21:05
感觉还是第一种方法快一点,少了个循环

解答错误

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

使用道具 举报

发表于 2020-3-3 21:33:13 | 显示全部楼层
本帖最后由 kinkon 于 2020-3-3 21:34 编辑
zltzlt 发表于 2020-3-3 21:25
解答错误

输入:"aa"


好了,加了个条件,做事不认真,18楼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-12 03:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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