Algorithm
lc677_键值映射
感觉应该是要使用字典树,没加一个单词,对经过的节点的sum增加val
然后求sum的时候直接按字典树去找即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| struct TrieNode { int val; TrieNode * next[26]; TrieNode() { this->val = 0; for (int i = 0; i < 26; ++i) { this->next[i] = nullptr; } } };
class MapSum { public: MapSum() { this->root = new TrieNode(); } void insert(string key, int val) { int delta = val; if (cnt.count(key)) { delta -= cnt[key]; } cnt[key] = val; TrieNode * node = root; for (auto c : key) { if (node->next[c - 'a'] == nullptr) { node->next[c - 'a'] = new TrieNode(); } node = node->next[c - 'a']; node->val += delta; } } int sum(string prefix) { TrieNode * node = root; for (auto c : prefix) { if (node->next[c - 'a'] == nullptr) { return 0; } else { node = node->next[c - 'a']; } } return node->val; } private: TrieNode * root; unordered_map<string, int> cnt; };
|
Review
ftp协议文档-rfc959
Tips
图解 TCMalloc
记一次 TCMalloc Debug 经历
Share-ftp的多样调试
strace
暴力对主进程
strace -ff -p $pid
找双子进程来处理
ps -ef | grep vsftpd
找到双子进程
strace -ff -p $pid
gdb
set follow-fork-mode <mode>
也只能追踪到第一个子进程,基本跟不到…(可能是我技巧不到位)
所以还是像strace 一样,看到双子进程的pid,然后直接gdb attach $pid
, 比较难跟
最好先上传一个文件再开始ps查找双子进程跟踪