Posts pythonTip 92 解析HTML
Post
Cancel

pythonTip 92 解析HTML

题目描述: 我们每天都在浏览网页,HTML是网页的基础,现在请你模拟解析简单的HTML代码。 我们这里定义的HTML只包括两个特殊标记 <hr>-------

具体的解析规则如下:

rule1:你从输入中读入的一个单词,如果这个单词和当前行已有的长度加起来不超过80,则将该单词输出到当前行,否则另起一行,将该单词输出到下一行的开头;

rule2:如果你从输入中读到的是<hr>,则换行

rule3:如果你从输入中读到的是------,则另起一行输出80个’-‘(如果当前正好在新行的开始,则直接输出80个’-‘),并再次换行到新行的开始。

rule4:单词之间以一个空格分开。 给你一个HTML字符串html,请你输出解析之后的结果。

示例:

分析:

这个实际上是一个简单的题目,但是因为 题目中的描述不是很清楚,所以就造成思考的一定困难。

只要按照题目给定的一个 规则进行转化,这个题目还是比较简单的。

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
el_lst = html.replace('\n', ' ').split(' ')

el_lst = [el for el in el_lst if len(el)]

now_len = 0
now_str = ""
for el in el_lst:
    if el == '<br>':
        if now_str:
            print(now_str.strip())
        now_str = ""
        print("")
    elif el == '<hr>':
        print(now_str.strip())
        now_str = ""
        print("-"*80)
    else:
        if len(now_str) + len(el) >= 80:
            print(now_str.strip())
            now_str = el + " "
        else:
            now_str += el + " "
if now_str:
    print(now_str.strip())
This post is licensed under CC BY 4.0 by the author.
Trending Tags
Contents

pythonTip 91 全排列

pythonTip 93 排序的精髓

Trending Tags