スタックを使用してカッコマッチングのアルゴリズムを実証


方法:
void StrMacthByStack(string s)
{
	 stack left;  
	 while (!s.empty())
        {  
           
            string character=s.substr(0,1);   //         
           
            s=s.substr(1);   //        
            
            if(character=="{"||character=="["||character=="(")
            {  
               
                left.push(character);   			//      ,      
            }
            else if(character==")"||character=="]"||character=="}")
            {  
               
				if(left.empty())					//          
                    return ;   				 

				string leftChar=left.top();  	 	//      
				left.pop();							//      

                if(character==")")
                {  
                    if(leftChar!="(") 	//            
                        return ;  
                    else
                    {
						cout<

テストクラス:
int _tmain(int argc, _TCHAR* argv[])
{
	
	string str = "(liu78{09f[0]9})";

	StrMacthByStack(str);

	return 0;
}

結果: