第一篇博客:LeetCode刷题记录
从零开始
作为一个后年毕业的硕士生,在知乎和实验室师兄师姐的找工作焦虑气氛中,不得不开始为自己明年的秋招考虑,开始刷起LeetCode,希望到明年秋招的时候有比较大的进步。从这篇博客开始记录刷题中遇到的一些知识点和问题,希望有所收获。
1002 查找常用字符
本题对于Python比较方便,其中一种解法效果不错,但是有关于max和min函数的灵活使用:
key参数的运用
这里的key取值为len表示以字符串长度为标准进行比较输出数组中字符串长度最短的字符串。
if all的应用
这里表示对于最小字符串中的char,如果每一个字符串都含有这个char,则进行后面的步骤,这个语法我自己原来没有用过,又可以记录一下使用。
结果展示
这里注意我一开始没有通过的原因是最后的A使用了()而不是[]导致A被赋值成了一个字符串,因此出错了。
另一种做法
本题的另一种做法更加简洁:
但是需要用到迭代器的知识。
map函数的使用
map的第一个参数为函数,第二个参数为对应使用函数的数据,这里使用的函数也进行介绍:counter是collections中的一种数据类型,即计数器。
reduce函数的使用
reduce函数包含两个参数,reduce(function, sequence [, initial] ) -> value,其中function参数是一个有两个参数的函数,reduce依次从sequence中取一个元素,和上一次调用function的结果做参数再次调用function。第一次调用function时,如果提供initial参数,会以sequence中的第一个元素和initial作为参数调用function,否则会以序列sequence中的前两个元素做参数调用function。
结果展示
提交的方法里面也有一些其他的用法,不过看的不是很懂,内存用的最少的和比较多的也只相差几百kb,不再具体看这道题。