鱼C论坛

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

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

[复制链接]
发表于 2020-2-16 22:45:42 | 显示全部楼层
  1. def fc(string):
  2.         for each in sorted(set(string.upper()))[::-1]:
  3.                 if each in string and each.lower() in string:
  4.                         return print(each)
  5.         print('~')
复制代码

好久没发帖了。

评分

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

查看全部评分

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

使用道具 举报

发表于 2020-2-16 23:00:56 | 显示全部楼层    本楼为最佳答案   
本帖最后由 阴阳神万物主 于 2020-2-17 20:55 编辑

小生也是姗姗来迟啊。
  1. def solve(s:str)->str:
  2.     a = set(list(s))
  3.     b = set(list(s.swapcase()))
  4.     c = a.difference(a.difference(b))
  5.     res = list(c)
  6.     if res:res.sort()
  7.     else:return '~'
  8.     return res[-1].upper()
  9. if __name__ == '__main__':
  10.     print('示例1 输出:',repr(solve("aAbBcD")))
  11.     print('示例2 输出:',repr(solve("looGVSSPbR")))
复制代码

减少一行代码,过程没有区别。
  1. def solve(s:str)->str:
  2.     a = set(list(s))
  3.     b = set(list(s.swapcase()))
  4.     c = a.difference(a.difference(b))
  5.     res = sorted(c)
  6.     if res:return res[-1].upper()
  7.     else:return '~'
  8. if __name__ == '__main__':
  9.     print('示例1 输出:',repr(solve("aAbBcD")))
  10.     print('示例2 输出:',repr(solve("looGVSSPbR")))
复制代码



评分

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

查看全部评分

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

使用道具 举报

发表于 2020-2-16 23:08:36 | 显示全部楼层
  1. def fun333(x : str):
  2.     s = set(x)
  3.     s = list(s)
  4.     s.sort()
  5.     if(s[0] > 'z'):
  6.         return "~"
  7.     while s != []:
  8.         temp = s.pop()
  9.         if(temp < 'a'):
  10.             return "~"
  11.         temp = temp.upper()
  12.         if(temp in s):
  13.             return temp
  14.     return "~"
复制代码

评分

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

查看全部评分

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

使用道具 举报

发表于 2020-2-16 23:51:46 | 显示全部楼层
  1. def fun333(s):
  2.     ns=''.join(sorted(set(s+'^'),reverse=True)).split('^')[0]
  3.     if not ns:return '~'
  4.     for i in ns:
  5.         if i.upper() in s:
  6.             return i.upper()
  7.     return '~'
复制代码

评分

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

查看全部评分

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

使用道具 举报

发表于 2020-2-16 23:56:47 | 显示全部楼层
本帖最后由 wanting-for 于 2020-2-16 23:58 编辑

set函数去重
  1. def solve_333(s: str):
  2.     s = set(list(s))
  3.     s = sorted(s,reverse = True)
  4.     for x in s:
  5.         if x.isupper():
  6.             return '~'
  7.         elif x.upper() in s:
  8.             return x.upper()
  9.     return '~'
复制代码

字典去重
  1. def solve_333(s: str):
  2.     s,d = sorted(list(s),reverse = True), {}
  3.     for x in s:
  4.         if not d.get(x):
  5.             if x.isupper():
  6.                 return '~'
  7.             elif x.upper() in s:
  8.                 return x.upper()
  9.             else:
  10.                 d[x] = ''
  11.     return '~'
复制代码

题目很清晰,主要是如何提升效率,如果大规模数据,毕竟重复量很大,
所以用了字典,和set,来进行去重
麻烦楼主测试一下,这俩时间分别是多少
谢谢啦

评分

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

查看全部评分

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

使用道具 举报

发表于 2020-2-17 00:28:44 | 显示全部楼层
def f333(s:str)->str:
    s1 = sorted(list(set(s)),reverse=True)
    for i in s1:
        if i.islower() and i.upper() in s1:
            return i.upper()
    return "~"
print(f333('aAbBcD'))
print(f333('looGVSSPbR'))
print(f333('"qsgrqngjupumrwkrfexznulmfyvniptzgatcqhtlrdrljhuvhbknlggxfwblkigcikgufovjtrpbzwpzmmnjkmmgakmohwgjtptzozqlprcmusckbigdbwswszauybezwccjmbqjmrrgodytzrhhhpzfcrqnqnkeighyynhrtvcsyiynrfogwkqcsjuwkmipwpuonvpvbcningpoxbbllbnftcjtsmpbpfddglqgfzpwsbboueyuftxewkdtyvvlsjcqwethrlesomuxntonpxbeabzsjcxpcknemneoqyvlwzpkjtftgjjdqinsnyvhbhtzpywxqwzilbkihaeqrparegqkjqkjekezdicltsuvztjbqoocrwgnbwmcomesxbunhmsyxnpippajvybcdppofmeincxhikpvmyoyeeoftctmhvteitflfmynrncngzfthxduthqzkjkhqdqjykxltavdyktyoiwyzymfjonxmyzyhwsvgxbtmifkbuhlelmefxtcjrubripfqjqcdbconqupshsebsgzqtzrzmmnfjcjhigdyetnagggxrbvfpygczegedkftiqbzhvcatqjcifczqorlncdgfibjglaxazlvcxjcclqbginbwvafxaxdbbgznlerbnrrizpzesgegalodsqqggammpvnqxroqqsaudmpotfvgjttndzryaykjoeesfoisaqcsgmjosyjykposxixvuwulclfsvledzpqjgcrcvszhravwtsjkcodokgyvbvrxmdqqgzefpdkyokbsfpdmyadugqkzjovqjxdbofqxkppffpolyfynxnbltqishyfopsihxydkaqvvymncseymdyzvinvbnazjjstetcdentulfnbndnkcwtaizpmfxiojtnpdejfmpkttpsleflgzwaaquvmnljemzfuzobrtwpoesaygwxtyhbutivunopyckftuxybhapravbgosmiqncjtel"'))

评分

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

查看全部评分

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

使用道具 举报

发表于 2020-2-17 00:41:18 | 显示全部楼层
本帖最后由 yexing 于 2020-2-17 00:50 编辑
  1. def func333(s:str) -> str:
  2.     string = []
  3.     for i in s:
  4.         string.append(i)
  5.     string.sort(reverse=True)
  6.     for i in string:
  7.         if i.upper() in s and i.lower() in s:
  8.             st = i
  9.             flag = 1
  10.             break
  11.         else:
  12.             flag = 0
  13.     return (st.upper() if flag==1 else "~")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2020-2-17 08:55:46 | 显示全部楼层

150 ms,还可以改进哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-17 08:57:05 | 显示全部楼层

输入以下数据返回的是 None

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

使用道具 举报

 楼主| 发表于 2020-2-17 08:57:27 | 显示全部楼层

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

使用道具 举报

 楼主| 发表于 2020-2-17 08:58:11 | 显示全部楼层
阴阳神万物主 发表于 2020-2-16 23:00
小生也是姗姗来迟啊。

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

使用道具 举报

 楼主| 发表于 2020-2-17 08:58:37 | 显示全部楼层

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2020-2-17 09:00:34 | 显示全部楼层
wanting-for 发表于 2020-2-16 23:56
set函数去重

字典去重

不用说,当然是集合去重更快~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-17 09:00:56 | 显示全部楼层
ouyunfu 发表于 2020-2-17 00:28
def f333(s:str)->str:
    s1 = sorted(list(set(s)),reverse=True)
    for i in s1:

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

使用道具 举报

 楼主| 发表于 2020-2-17 09:01:52 | 显示全部楼层
ouyunfu 发表于 2020-2-17 00:28
def f333(s:str)->str:
    s1 = sorted(list(set(s)),reverse=True)
    for i in s1:

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

使用道具 举报

发表于 2020-2-17 09:02:01 | 显示全部楼层
zltzlt 发表于 2020-2-17 08:57
输入以下数据返回的是 None

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

使用道具 举报

 楼主| 发表于 2020-2-17 09:02:34 | 显示全部楼层

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

使用道具 举报

 楼主| 发表于 2020-2-17 09:03:13 | 显示全部楼层

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-24 10:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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