【POJ HDOJ leetcode】括号匹配合法性及最长括号匹配
/* 1. string parenthesis 给出一个由()组成的字符串判断合法性,如()合法, (, (((不合法. 2. 给出一串()字符串,求出最长连续括号匹配的长度及其位置 */ #include <iostream> #include <stdio.h> #include <stack> using namespace std; class Solution { public : bool isValid( const string & s) { if (s == "" ) { return true ; } stack < char > stk; size_t size = s.size(); for (size_t i = 0 ; i < size; i++ ) { if (s[i] == ' ( ' ) { stk.push(s[i]); } else { if (stk.empty()) return false ; stk.pop(); } } return stk.size() == 0 ; } }; pair < int , int > NumOfMatch( const char * str) { if (str == NULL) return { 0 , 0 }; const char * p = str; int nLeft = 0 ; //