C # 1 스택은 괄호의 효과적인 사용을 달성

요구 사항 :

단지 주어진 포함  '(', ')', '{', '}', '[', ']' 문자열, 그것은 문자열이 유효한지 여부를 결정합니다.

유효한 문자열을 충족해야합니다 :

  1. 왼쪽 브래킷은 동일한 유형의 닫는 괄호에 의해 폐쇄해야합니다.
  2. 왼쪽 괄호가 올바른 순서로 닫아야합니다.

빈 문자열을 참고 유효한 문자열로 간주 될 수있다.

다음과 같이 코드입니다 :

       공용  정적  BOOL IsValiad ( 문자열 들) 
       { 
           스택 < 문자열 > 스택 = 새로운 스택 < 문자열 > (); // 创建一个字符串的栈 
           사전 < 문자열 , 문자열 > DIC = 새로운 사전 < 문자열 , 문자열 > (); 
           dic.Add ( " ( " , " ) " ); 
           dic.Add ( " [ " , " ] "
           dic.Add ( " { " , " } " );
           경우 ( 문자열 .IsNullOrEmpty (들)) 반환  사실 ;
           위한 ( int로 I = 0 ; i가 s.Length를 <; 내가 ++ ) 
           { 
               경우 (S [I] == ' ( ' ||의 S [I] == ' [ ' ||의 S [I] == ' { ' ) 
               { 
                   stack.Push (S [I]로 .toString ());   
               } 
               다른 {
                     경우 (stack.Count의 == 0 ) 돌려  거짓 ;
                       문자열 기호 = stack.Pop ();
                       만약 (! DIC [기호]가 S [I]로 .toString ()) 반환  거짓 ; 
                    
               } 
           } 
           반환 stack.Count의 == 0 ? 사실 : 거짓 ; 
       }

코드 분석 :

              1. 스택에 왼쪽으로하면 왼쪽 괄호 괄호가 발생

              스택의 오른쪽 상단 2. 발생 소자 브래킷 팝업 듯하고 우측 브래킷 현재 등가 상단 요소 바로 괄호 대응 여부를 결정된다

             3. 극단적 인 경우, 모든 왼쪽 또는 모든 권리 심볼 기호 문자가있는 경우. 두 경우는 스택의 모든 요소가 올바른 문자열 데이터 스택 팝업 될 것인지를 결정함으로써 결정될 수있다

추천

출처www.cnblogs.com/97310ZT/p/10972671.html