ARTS打卡第八周

Posted jessetsou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARTS打卡第八周相关的知识,希望对你有一定的参考价值。

每周完成一个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

    Linux sed命令在匹配行前后插入新行

    a?在匹配行的后面追加一行
    b?在匹配行的前面追加一行

    Share

    C++内存泄漏和内存碎片的产生及避免策略

以上是关于ARTS打卡第八周的主要内容,如果未能解决你的问题,请参考以下文章

Python打卡第八周

ARTS第八周

ARTS第八周

ARTS打卡第三周

ARTS打卡第1周

ARTS打卡第5周