Algorithm。主要是为了编程训练和学习。每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard)。进行编程训练,如果不训练你看再多的算法书,你依然不会做算法题,看完书后,你需要训练。关于做Leetcode的的优势,你可以看一下我在coolshell上的文章 Leetcode 编程训练 - 酷 壳 - CoolShell。 Review:主要是为了学习英文,如果你的英文不行,你基本上无缘技术高手。所以,需要你阅读并点评至少一篇英文技术文章,我个人最喜欢去的地方是http://Medium.com 以及各个公司的技术blog,如Netflix的。 Tip:主要是为了总结和归纳你在是常工作中所遇到的知识点。学习至少一个技术技巧。你在工作中遇到的问题,踩过的坑,学习的点滴知识。 Share:主要是为了建立你的影响力,能够输出价值观。分享一篇有观点和思考的技术文章。
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z
。
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs:
return ""
s = list(map(set,zip(*strs)))
res = ""
for i,x in enumerate(s):
x = list(x)
if len(x) > 1:
break
res = res + x[0]
return res
https://stackoverflow.com/questions/2846653/how-to-use-threading-in-python
philshem的回答:
使用map
进行类比,线程相当于同时执行map操作
Parallel versions of the map function are provided by two libraries:multiprocessing, and also its little known, but equally fantastic step child:multiprocessing.dummy.
虽然大家的回答好想都没错,但好像大部分都是基于python2的,可能我的搜索方式存在问题。
在Jenkins使用声明式流水线发现遇到了各种阻碍,无法很舒服的进行返回值的传递与输出,所以如果要写Jenkins流水线,一定要一开始就使用脚本式啊!
最近看了关于OceanBase数据库产生的一篇公众号
里面有一句:
当被问及“中间有没有想过这事如果没做成,怎么办?”,阳振坤回答得云淡风轻:“不是每件事都能做成,那太难了。如果每件事在做之前都想着它能不能做成,那最后做成的事就会很少。”
最近发现自己做事情的时候,明确知道这个事有益于当前工作,但是总是在考虑这件事能不能做成。其实好像是把看上去不可能完成的事情做出来了,才是真正的突破。复刻之前已有的部分其实只是搬运而已。之前看上去困难的事情,在深入了解之后可能并没有想象中那么困难。不知不觉已经读完了《Jenkins 2 权威指南》,才发现好像其中大部分内容都在自行摸索的时候有过一定的接触。这个过程是一个非常矛盾的过程,通过自己摸索,会非常耗费时间,并且有很大的不确定性,但是收获的理解却是非常深刻的。在阅读的时候与之前踩过的坑进行对应,才会有种恍然大悟的感觉。如果没有任何操作,直接阅读,那么肯定是一头雾水完全不知所云。有些看上去浪费的时间,会在不经意之间给到一个正反馈。
五一在和家里人讨论装修的事情,关于请设计师来设计的事情上,出现了一定的分歧。装修规划这个事情,看上去很简单,但是实际上其中还有很多乱七八糟的细节部分。每个专业的事情我们都可能可以做到一部分,但是远无法做好。可能连什么是「好」都无法真正明确。 术业有专攻,设计师在专业领域沉浸了那么久。所耗费的时间与精力,并不是浪费。
涉略越多的不同的内容,会发现自己的「认知」有了很大的改变。可能去年的我,做事情的时候总是想着怎么手工按照流程来完成,今年可能更多的在思考怎么使用脚本来实现,这是工作内容改变导致的认知改变。去年看到前端页面出现异常之后,直接找到开发进行定位,现在会自己打开调试工具进行初步的排查,这是拓展知识认知的提升。还有很多说不清道不明的进步。