Algorithm
https://leetcode.com/problems/longest-common-prefix/
class Solution { public String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length == 0) {
return "";
} if (strs.length == 1) {
return strs[0];
} String result = ""; boolean pass;
//i循环的字符指针
for (int i = 0; ; i++) {
if (i >= strs[0].length()) {
return result;
} char c = strs[0].charAt(i);
pass = true; for (int j = 1; j < strs.length; j++) {
if (i >= strs[j].length()) {
pass = false;
break;
}
if (c == strs[j].charAt(i)) {
continue;
} else {
pass = false;
break;
}
} if (pass) {
result += c;
} else {
return result;
}
} } }
Review
《Teach Yourself Programming in Ten Years》
这篇文章很出名,我之前也读过一遍,时间久了,这次像新读一篇文章一样,完全没有之前的印象。作者写的真诚,开篇就认真分析了“24小时自学C++”到底意味着什么,分自学、C++、24小时内三段。通常看到“24小时自学C++”这样的标题,我心想这不可能,就略过了,然而作者以他真实、丰富的经验分析如何不可能以及只能到学到什么程度,这种认真和真诚是我没有的。在第二部分,作者介绍了刻意练习,在今天来看,刻意练习是个热门的词,但从这篇文章写就的时间来看,当时也许算是前沿的研究结果。还发现这段和李笑来的《把时间当做朋友》第三章的某些字句重复,想来时李笑来借鉴这篇文章的。第三部分作者以自己的经验给出了成为真正程序员的大纲,包括对编程感兴趣,动手编程,和同行交流,上大学,和同行合作,修改别人的代码,多学不同范式的编程语言,了解计算机的工作原理,甚至参加语言的标准化工作等,难度逐级递增。我觉得当埋没在公司的业务代码中时,拿出这篇文章看看会使自己以更高的角度来看待当前的工作。
Tip
前几天代码中出了问题,统计某项数据出了问题,需要直接更改Redis中的数据,就直接set、sadd了,结果第二天数据多了,原来是Redis中的key应该是当晚12点失效的,因为在用命令set、sadd修改了数据,失效时间清零了,永不会再失效,导致第二天数据产生了叠加。