营销型企业网站包括哪些类型,南宁网站建设智能优化,做计算机网站的总结,百度网页翻译CheckiO 是面向初学者和高级程序员的编码游戏#xff0c;使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务#xff0c;从而提高你的编码技能#xff0c;本博客主要记录自己用 Python 在闯关时的做题思路和实现代码#xff0c;同时也学习学习其他大神写的代码。
Chec…
CheckiO 是面向初学者和高级程序员的编码游戏使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务从而提高你的编码技能本博客主要记录自己用 Python 在闯关时的做题思路和实现代码同时也学习学习其他大神写的代码。
CheckiO 官网https://checkio.org/
我的 CheckiO 主页https://py.checkio.org/user/TRHX/
CheckiO 题解系列专栏https://itrhx.blog.csdn.net/category_9536424.html
CheckiO 所有题解源代码https://github.com/TRHX/Python-CheckiO-Exercise 题目描述
【The Most Wanted Letter】给你一段文本其中包含不同的英文字母和标点符号。你要找到其中那个出现最多的字母返回的字母必须是小写形式。找这个“头号通缉字母”时大小写不重要所以对于你的搜索而言 “A” “a”。 注意不要管标点符号、数字和空格我们只要字母如果你找到两个或两个以上出现频率相同的字母 那么返回字母表中靠前的那个。 例如“one”包含“o”、“n”、“e”每个字母一次因此我们选择“e”。
【链接】https://py.checkio.org/mission/most-wanted-letter/
【输入】包含待分析文本的字符串
【输出】出现最多的字母小写
【前提】输入的文本 text 只包含 ASCII 码字符0 len(text) ≤ 10 5
【范例】
checkio(Hello World!) l
checkio(How do you do?) o
checkio(One) e
checkio(Oops!) o
checkio(AAaooo!!!!) a
checkio(abe) a解题思路
利用 Python 的 re 库用 sub() 方法去除原字符串中标点符号、数字和空格再用 lower() 方法将所有字母换为小写再将每个字母和其对应的出现次数作为一个键值对传入到字典dicts.items()将字典转换成可遍历的(键, 值) 元组数组sorted(dicts.items(),keylambda x:x[0])按照 dicts.items() 数组的第一个元素键即字母进行排序最后返回这个字典值中最大的 key
代码实现
import redef checkio(text: str) - str:text re.sub([\W\d_], , text)text text.lower()dicts {}for i in set(text):dicts[i] text.count(i)dicts dict(sorted(dicts.items(),keylambda x:x[0]))return max(dicts, keydicts.get)if __name__ __main__:print(Example:)print(checkio(Hello World!))# These asserts using only for self-checking and not necessary for auto-testingassert checkio(Hello World!) l, Hello testassert checkio(How do you do?) o, O is most wantedassert checkio(One) e, All letter only once.assert checkio(Oops!) o, Dont forget about lower case.assert checkio(AAaooo!!!!) a, Only letters.assert checkio(abe) a, The First.print(Start the long test)assert checkio(a * 9000 b * 1000) a, Long.print(The local tests are done.)大神解答 大神解答 NO.1 import stringdef checkio(text):text text.lower()return max(string.ascii_lowercase, keytext.count)大神就是大神查了一下资料ascii_lowercase abcdefghijklmnopqrstuvwxyzascii_uppercase ABCDEFGHIJKLMNOPQRSTUVWXYZ整个代码的意思就是先转换为小写字母然后返回 ‘a-z’ 中在 text 里出现次数最多的字母 大神解答 NO.2 from string import ascii_lowercase as letterscheckio lambda text: max(letters, keytext.lower().count)同样的在这个解答中letters abcdefghijklmnopqrstuvwxyz后面也是返回 ‘a-z’ 中在 text 里出现次数最多的字母