Leetcode_周赛184 1408-1411

 

 

1408. 数组中的字符串匹配

 

class Solution {
public:
    vector stringMatching(vector& words) {
        vector vt;
        int len=words.size();
        for (int i = 0; i < len; ++i) {
            for (int j = 0; j < len; ++j) {
                if (i!=j && words[j].find(words[i]) != words[j].npos) {
                    vt.push_back(words[i]);
                    break;
                }
            }
        }
        return vt;
    }
};

 

class Solution {
public:
    vector stringMatching(vector& words) {
        vector vt;
        for (auto i : words) {
            for (auto j : words) {
                if (i == j) continue;
                if (j.find(i) != -1) {vt.push_back(i); break;}
            }
        }
        return vt;
    }
};

1409. 查询带键的排列

模拟 玩暴力 

class Solution {
public:
    vector processQueries(vector& queries, int m) {
        int num[m+1]; num[0]=0;
        for(int i=1;i<=m;i++) num[i]=i;
        vector res;
        for(int que:queries){
            for(int j=1;j<=m;j++){
                if(num[j]==que){
                     res.push_back(j-1);
                    //调整num
                    num[0]=num[j];
                    for(int k=j-1;k>=0;k--) num[k+1]=num[k];
                    break;
                }   
            }
        }
        return res;       
    }
};

1410. HTML 实体解析器

「HTML 实体解析器」 是一种特殊的解析器,它将 HTML 代码作为输入,并用字符本身替换掉所有这些特殊的字符实体。

HTML 里这些特殊字符和它们对应的字符实体包括:

双引号:字符实体为 " ,对应的字符是 " 。
单引号:字符实体为 ' ,对应的字符是 ' 。
与符号:字符实体为 & ,对应对的字符是 & 。
大于号:字符实体为 > ,对应的字符是 > 。
小于号:字符实体为 < ,对应的字符是 < 。
斜线号:字符实体为 ⁄ ,对应的字符是 / 。
给你输入字符串 text ,请你实现一个 HTML 实体解析器,返回解析器解析后的结果。
示例 1:

输入:text = "& is an HTML entity but &ambassador; is not."
输出:"& is an HTML entity but &ambassador; is not."
解释:解析器把字符实体 & 用 & 替换

map 

class Solution {
private:    
    map m_pool = {
                                    {""", "\""}, {"'", "'"}, {"&", "&"},
                                    {">", ">"}, {"<", "<"}, {"⁄", "/"}
                                 };
    
public:
    string entityParser(string text) {
        string key;
        string res;
        for (auto achar : text) {
            if (achar == '&') {
                if (!key.empty()) {
                    res += key;
                    key.erase();
                }
                key.push_back(achar);
            } else if (achar != ';') {
                key.push_back(achar);
            } else {
                key.push_back(achar);
                if (m_pool.find(key) != m_pool.end()) {
                    // cout << "" << key << ", " << m_pool[key] << ")" << endl; 
                    res += m_pool[key];
                    key.erase();
                } else {
                    res += key;
                    key.erase();
                }
            }
        }
        if (!key.empty()) {
            res += key;
        }
        
        return res;
    }
};

1411. 给 N x 3 网格图涂色的方案数

 

 

 

 

 

你可能感兴趣的:(leetcode)