1410.HTML 实体解析器

​​题目来源:

leetcode题目,网址:1410. HTML 实体解析器 - 力扣(LeetCode)

解题思路:

使用map存放特殊字符串及其应被替换为的字符串。然后遍历字符串替换 map 中的字符串即可。

解题代码:

复制代码
class Solution {
public:
    string entityParser(string text) {
        unordered_map<string,string> map=getMap();
        string res="";
        for(int i=0;i<text.length();i++){
            if(text[i]!='&'|| i==text.length()-1){
                res+=text[i];
            }else{
                for(int j=i+1;j<text.length();j++){
                    if(text[j]=='&'){
                        res+=text.substr(i,j-i);
                        i=j-1;
                        break;
                    }else if(text[j]==';'){
                        string temp=text.substr(i,j-i+1);
                        if(map.count(temp)==0){
                            res+=text.substr(i,j-i+1);
                        }else{
                            res+=map[temp];
                        }
                        i=j;
                        break;
                    }else if(j==text.length()-1){
                        res+=text.substr(i,j-i+1);
                        i=j;
                        break;
                    }
                }
            }
        }
        return res;
    }
    unordered_map<string,string> getMap(){
        unordered_map<string,string> res;
        res["&quot;"]="\"";
        res["'"]="\'";
        res["&amp;"]="&";
        res["&gt;"]=">";
        res["&lt;"]="<";
        res["&frasl;"]="/";
        return res;
    }
};
复制代码

总结:

官方题解也是模拟,不过他在每一个 & 字符处对map中的字符串逐个判断是否相等。


相关推荐
程序员-King.1 分钟前
day122—二分查找—完成旅途的最少时间(LeetCode-2187)
算法·leetcode·二分查找·双指针
Swift社区9 分钟前
LeetCode 447 - 回旋镖的数量
linux·算法·leetcode
图形学爱好者_Wu12 分钟前
每日一个C++知识点|原子操作
c++·编程语言
特立独行的猫a13 分钟前
C++观察者模式设计及实现:玩转设计模式的发布-订阅机制
c++·观察者模式·设计模式
java修仙传17 分钟前
力扣hot100:路径总和III
数据结构·算法·leetcode
deng-c-f21 分钟前
C/C++内置库函数(3):future、promise的用法
c语言·开发语言·c++
leoufung35 分钟前
题目介绍:LeetCode 79. Word Search
leetcode·word·深度优先
deng-c-f1 小时前
C/C++内置库函数(6):C++中类什么时候使用静态变量
开发语言·c++
2301_789015621 小时前
C++:模板进阶
c语言·开发语言·汇编·c++
是小胡嘛1 小时前
仿Muduo高并发服务器之Buffer模块
开发语言·c++·算法