leetcode-184周赛-1410-HTML实体解析器

题目描述:

 

 自己的提交:

class Solution:
    def entityParser(self, text: str) -> str:
        text = text.replace(""","\"")
        text = text.replace("'","\'")
        text = text.replace("&", "&")
        text = text.replace(">",">")
        text = text.replace("&lt;", "<")
        text = text.replace("&frasl;","/")
        return text

优化:

class Solution:
    def entityParser(self, text: str) -> str:
        h = {
            "&amp;": "&",
            "&quot;": "\"",
            "&apos;": "\'",
            "&gt;": ">",
            "&lt;": "<",
            "&frasl;": "/",
        }
        
        for k, v in h.items():
            text = text.replace(k, v)
        return text

 

另:

class Solution(object):
    def entityParser(self, text):
        ans = []
        i = 0
        
        while i < len(text):
            if text[i] != '&':
                ans.append(text[i])
                i += 1
                continue
            else:
                if text[i+1:i+6] == 'quot;':
                    ans.append('"')
                    i += 6
                elif text[i+1:i+6] == 'apos;':
                    ans.append("'")
                    i += 6
                elif text[i+1:i+5] == 'amp;':
                    ans.append('&')
                    i += 5
                elif text[i+1:i+4] == 'gt;':
                    ans.append('>')
                    i += 4
                elif text[i+1:i+4] == 'lt;':
                    ans.append('<')
                    i += 4
                elif text[i+1:i+7] == 'frasl;':
                    ans.append('/')
                    i += 7
                else:
                    ans.append(text[i])
                    i += 1
        
        return "".join(ans)
View Code

 

posted @ 2020-04-12 19:46  oldby  阅读(153)  评论(0编辑  收藏  举报