【每日一题】1410. HTML实体解析器-2023.11.23

题目:

1410. HTML 实体解析器

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

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

  • 双引号: 字符实体为 " ,对应的字符是 "
  • 单引号: 字符实体为 ' ,对应的字符是 '
  • 与符号: 字符实体为 & ,对应对的字符是 &
  • 大于号: 字符实体为 > ,对应的字符是 >
  • 小于号: 字符实体为 &lt; ,对应的字符是 <
  • 斜线号: 字符实体为 &frasl; ,对应的字符是 /

给你输入字符串 text ,请你实现一个 HTML 实体解析器,返回解析器解析后的结果。

示例 1:

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

示例 2:

复制代码
输入:text = "and I quote: &quot;...&quot;"
输出:"and I quote: \"...\""

示例 3:

复制代码
输入:text = "Stay home! Practice on Leetcode :)"
输出:"Stay home! Practice on Leetcode :)"

示例 4:

复制代码
输入:text = "x &gt; y &amp;&amp; x &lt; y is always false"
输出:"x > y && x < y is always false"

示例 5:

复制代码
输入:text = "leetcode.com&frasl;problemset&frasl;all"
输出:"leetcode.com/problemset/all"

提示:

  • 1 <= text.length <= 10^5
  • 字符串可能包含 256 个ASCII 字符中的任意字符。

解答:

代码:

复制代码
class Solution {
    public String entityParser(String text) {
        Map<String,String> map=new HashMap<>();
        map.put("&quot;","\"");
        map.put("'","'");
        map.put("&amp;","&");
        map.put("&gt;",">");
        map.put("&lt;","<");
        map.put("&frasl;","/");
        int n=text.length();
        StringBuilder sb=new StringBuilder();
        for(int i=0;i<n;){
            if(text.charAt(i)=='&'){
                int j=i+1;
                while(j<n&&j-i<6&&text.charAt(j)!=';') j++;
                String sub=text.substring(i,Math.min(j+1,n));
                if(map.containsKey(sub)){
                    sb.append(map.get(sub));
                    i=j+1;
                    continue;
                }
            }
            sb.append(text.charAt(i++));
        }
        return sb.toString();
    }
}

结果:

相关推荐
csdn_aspnet3 分钟前
直圆锥(Right Circular Cone)
算法·圆锥
JJJJ_iii10 分钟前
【机器学习07】 激活函数精讲、Softmax多分类与优化器进阶
人工智能·笔记·python·算法·机器学习·分类·线性回归
再睡一夏就好22 分钟前
【C++闯关笔记】深究继承
java·数据结构·c++·stl·学习笔记
天若有情67343 分钟前
TFword:从字符到片段,解析一个“小而精”的字符串处理工具的设计智慧
java·jvm·算法
那我掉的头发算什么1 小时前
【数据结构】反射、枚举、lambda表达式以及补充知识
java·jvm·数据结构·intellij idea
DuHz1 小时前
频率分集阵列雷达——论文阅读
论文阅读·算法·汽车·信息与通信·毫米波雷达
机器学习之心1 小时前
198种组合算法+优化RF随机森林+SHAP分析+新数据预测!机器学习可解释分析,强烈安利,粉丝必备!
算法·随机森林·机器学习·shap分析·198种组合算法
大大大大物~2 小时前
数据结构之HashMap(容器)
java·数据结构·容器
jikiecui2 小时前
信奥崔老师:实数型: float、double
c++·算法