#python #stack
#python #стек
Вопрос:
Вот метод проверки соответствия тегов HTML:
def is_matched_html(raw):
"""Return True if all HTML tags are properly match; False otherwise."""
S = ArrayStack()
j = raw.find('<') # find first ’<’ character (if any)
while j != -1:
k = raw.find('>', j 1) # find next ’>’ character
if k == -1:
return False # invalid tag
tag = raw[j 1:k] # strip away < >
if not tag.startswith('/'): # this is opening tag
S.push(tag)
else: # this is closing tag
if S.is_empty():
return False # nothing to match with
if tag[1:] != S.pop():
return False # mismatched delimiter
j = raw.find('<', k 1) # find next ’<’ character (if any)
return S.is_empty() # were all opening tags matched?
И прикрепленный рисунок — это данные HTML, которые нужно проверить:
Как я могу проверить приведенные выше HTML-данные, используя первый заданный код?
Большое спасибо!
Комментарии:
1. прежде всего, пожалуйста, опубликуйте HTML в формате raw, во-вторых, почему бы не использовать для этого проверенную и проверенную библиотеку?
2. @gold_cy вероятно, потому что это домашнее задание…
3. Чтобы вызвать этот код для проверки файла, вы бы сделали
print (is_matched_html(open("pathtomyinput.html").read()))
. Это открывает ваш файл с данными HTML, считывает его содержимое, а затем передает его в качестве аргументаraw
функции, которую вы представляете. Это действительно то, что вы хотели спросить?4. Привет, BoarGules, это именно то, что я хочу. Большое спасибо!