每周完成一个ARTS
-
每周至少做一个 leetcode 的算法题
-
阅读并点评至少一篇英文技术文章
-
学习至少一个技术技巧
-
分享一篇有观点和思考的技术文章。
-
(也就是 Algorithm、Review、Tip、Share 简称ARTS)
Algorithm
290. 单词规律
给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。
这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。
思路:
使用两个map,分别表示字符串与字母、字母与字符串的对应关系
class Solution { public: vector<string> getvec(string str) { vector<string> vec; if (str.empty()) return vec; char *szstr = new char[str.size() + 1]; strcpy(szstr, str.c_str()); char *p = strtok(szstr, " "); while(p) { vec.push_back(p); p = strtok(NULL, " "); } delete szstr; return vec; } bool wordPattern(string pattern, string str) { unordered_map<char, string> map1; unordered_map<string, char> map2; vector<string> vstr = getvec(str); if (pattern.size() != vstr.size()) return false; bool issame = true; int i = 0; for (auto e: pattern) { if (map1.find(e) == map1.end()) { map1.insert(pair<char, string>(e, vstr[i])); } else { if (map1[e] != vstr[i]) { issame = false; break; } } if (map2.find(vstr[i]) == map2.end()) { map2.insert(pair<string, char>(vstr[i], e)); } else { if (map2[vstr[i]] != e) { issame = false; break; } } i ++; } return issame; } };
Review
une Your Hard Disk with hdparm
介绍了hdparm这款软件,是linux下重要的诊断、调整硬盘驱动的工具。
展示硬盘基本信息:
hdparm -I /dev/sda
速度测试:
hdparm -t /dev/sda
Tip
a 在匹配行的后面追加一行
b 在匹配行的前面追加一行Share