像梦一样奔驰|100 道 Python 算法题及答案集合,拿去刷
看书 , 看视频都可以帮助你学习代码 , 但都只是辅助作用 , 学好 Python , 最重要的还是 多敲代码 , 多刷题 。
不知道怎么找题刷题的小伙伴 , 可以看看我们今天带来的《Python 百题大冲关》 。 覆盖了基本语法 , 数据结构 , 算法等多个方面 , 并附有答案 。
100 道 Python 练习题 , 刷起来!!!
以下是前四道题目:
一、确定字符串是否包含唯一字符题目介绍:
实现一个算法:识别一个字符串中 , 是否包含唯一的字符 。
- 如果字符串中的字符都是唯一的 , 则返回 True , 如 '123' 。
- 如果字符串中的字符有重复 , 则返回 False , 如 '1223' 。
解题思路:
看到这个题目 , 你的第一反应可能是:先把字符串中每个字符都拆分出来 , 放入一个列表 , 再统计列表中是否有数量为 1 的字符 。 但这么做不但费时 , 而且要循环多次 , 效率极低 , 有一个方法可以让你超过 99 % 的面试者:
记得 Python 的 Set (集合) 概念吗?在集合中 , 所有的元素都是唯一的 。 你可以使用 set() 方法将字符串、列表等任何「可迭代对象」转换为集合 , 转换后会删除重复的元素 , 继而长度会发生变化 。
所以 , 我们只需要将字符串转换为集合 , 然后比较转换前后的长度即可 , 代码如下 。
参考答案:
class UniqueChars(object):def has_unique_chars(self, string):if string is None:return Falsereturn len(set(string)) == len(string)
二、确定字符串是否是另一个的排列题目介绍:实现一个算法来识别一个字符串 str2 是否是另一个字符串 str1 的排列 。 排列的解释如下:
- 如果将 str1 的字符拆分开 , 重新排列后再拼接起来 , 能够得到 str2, 那么就说字符串 str2 是字符串 str1 的排列 。 例如:123 是 321 的排列 , abc 是 cba 的排列 。
- 如果 str2 字符串是 str1 字符串的排列 , 则返回 True;反之则返回 False;
解题思路:
一样是看起来复杂 , 但只需一行核心代码就能搞定的题目 。 在其他语言中 , 你可能要手动写一个排序算法 , 然后比较两个字符串排序后是否一样 。 但 Python 自带的 sorted() 方法 , 可以自动对所有可迭代的对象进行排序操作 。
参考答案:
class Permutations(object):def is_permutation(self, str1, str2):if str1 is None or str2 is None:return Falsereturn sorted(str1) == sorted(str2)
附加知识点:sort() 和 sorted() 的区别:sort() 应用在 list 列表中 , 而 sorted() 可以对所有可迭代的对象进行排序操作 。
三、反转字符串中的字符题目介绍:
实现一个算法来实现反转字符数组的功能 。 反转的要求如下:
- 将字符数组的字符进行反转 , 例如 ['b', ' ', 'a', 'r'] 变成 ['r', 'a', ' ', 'b'] 。
- 将字符数组替换为反转后的数组 。
解题思路:
常规的解法是创建一个相同长度的新数组 , 然后把第一个数组中的元素 , 按倒序放入新数组中 。 但更简单的方法是:利用 Python 交换变量的特性 , 不需要新建数组 , 直接在原数组里即可完成 , 代码如下 。
参考答案:
class ReverseString(object):def reverse(self, chars):if chars:size = len(chars)for i in range(size // 2):chars[i], chars[size - 1 - i] = \chars[size - 1 - i], chars[i]return chars
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 王者荣耀|萌新“首充3选1”选了虞姬,看英雄海报后懵了:怎么不一样?
- 龙导说车|宝马X3奔驰GLC和奥迪Q5L,详细选车指南,豪华中型SUV
- 排气管|试驾丨虚怀若谷才是“大V”该有的样子
- 老王科技|苹果iPhone12更超值被Pro版体现!两款屏幕维修价一样
- 猪好多网|跌到谷点,会同猪价一样出现反弹吗?,10月19日20公斤仔猪价格
- 科技春晚过后,本周一样热闹 | 买微力新鲜报
- IT之家|RTX 3070 即将发布,但一样缺货,英伟达
- 周百福珠宝|周百福和周六福、六福珠宝有什么不一样?
- 迅游游戏|像神一样掌控生死与时间,却也终留遗憾,那些让人泪目的悲情角色
- 物理|上学时做过开挂一样的事情吗?网友:历史当小说看,我考90,别人考60以下