bool isHtmlMatched(const vector<string>& tags) { LinkedStack<string> S; typedef vector<string>::const_iterator Iter; for (Iter p = tags.begin(); p != tags.end(); ++p) { if (p->at(1) != '/') S.push(*p); else { if (S.empty()) return false; string open = S.top().substr(1); string close = p->substr(2); if (open.compare(close) != 0) return false; else S.pop(); } } if (S.empty()) return true; else return false; }