ARTS Week 2
每周完成一个ARTS:
1.Algorithm:每周至少做一个 leetcode 的算法题
2.Review:阅读并点评至少一篇英文技术文章
3.Tip:学习至少一个技术技巧
4.Share:分享一篇有观点和思考的技术文章
Algorithm
#include <string>
using namespace std;
class Solution {
public:
int lengthOfLongestSubstring(string s) {
//int length = 0;
string maxSubstring="";
string curSubstring="";
int ilength = s.size();
for(int i = 0;i<ilength;i++){
curSubstring += s[i];
for (int j = i+1;j<ilength;j++){
if(string::npos != curSubstring.find(s[j])){
break;
}
curSubstring +=s[j]; }
if (maxSubstring.size()<curSubstring.size()){
maxSubstring = curSubstring;
}
if (maxSubstring.size() > (ilength - i)) {
break;
}
curSubstring = "";
}
return maxSubstring.size();
}
};
Review
本文讲述的主要含义是,在拥有相同专业能力的情况下,有经验的程序员所做的选择。
有能力的新人总会以为他们可以解决所有问题,改掉所有bug。然而并不是这样,尤其是在面对大型分布式高并发的系统时,情况复杂,极端条件下的错误很难靠程序本身完美地解决。只要纠错成本不是太高,给予系统操作人员处理错误的权限会是一个不错的方案。在你有足够的证据证明成本得到回报之前,投入你的精力是没有意义的。
将一些技术限制提升到业务场景并逐步发展,而不是一次性解决所有问题更有价值。聪明的程序员不是解决所有问题的人,而是理解值得解决的问题的人。
Tips
Qt 下 IPV4 地址输入的校验器设置
QString ipRange = "(?:[0-1]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])";
QRegExp ipRegex ("^" + ipRange
+ "\\." + ipRange
+ "\\." + ipRange
+ "\\." + ipRange + "$");
QRegExpValidator *ipValidator = new QRegExpValidator(ipRegex, this);
lineEdit->setValidator(ipValidator);
Share
本周分享一篇黑客与画家读后的一点心得
我是StormSun,期待与你一起交流学习!