@igoodmood

Как проигнорировать содержимое тегов?

Создал программу с помощью стека, для проверки открытых и закрытых тегов, но фильтр отмечает тег правильним только в таком виде : "<>", как можно осуществить, чтобы он распознавал теги такого типа ""?
class Stack:
    def __init__(self):
        self.items = []
    def isEmpty(self):
        return self.items == []
    def push(self, item):
        self.items.append(item)
    def pop(self):
        return self.items.pop()
    def peek(self):
        return self.items[len(self.items)-1]
    def size(self):
        return len(self.items)
def html(tag):
    s = Stack()
    balanced = True
    index = 0
    while index < len(tag) and balanced:
        symbol = tag[index]
        if symbol == "<":
            s.push(symbol)
        else:
            if s.isEmpty():
                balanced = False
            else:
                s.pop()
        index = index + 1
    if balanced and s.isEmpty():
        return True
    else:
        return False
print(html('<body'))
print(html('</h1>'))
  • Вопрос задан
  • 367 просмотров
Пригласить эксперта
Ответы на вопрос 2
DmitryVoronkov
@DmitryVoronkov
Python Developer
import re

s = '<body>'
print re.match('<.*>', s).span()
Ответ написан
@abcd0x00
Используй конечный автомат на три состояния: начало (S1), в середине без символа (S2) и в сердине с символом (S3).
В S1 ты можешь принять только открывающую скобку и перейти в S2.
В S2 ты можешь принять только простой символ и перейти в S3.
В S3 ты можешь принимать простые символы и закрывающую скобку.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы