Leet Code OJ 20. Valid Parentheses

1537 단어
Given a string containing just the characters , determine if the input string is valid. The brackets must close in the correct order, “()” and “()[]{}” are all valid but “(]” and “([)]” are not. 번역: '(', ')', '{', '}', '[' 및 '] 문자만 포함하는 문자열을 지정하여' 유효 '한지 확인하십시오.괄호는 올바른 순서로 닫아야 합니다. 예를 들어 '()' 와 '() [] {}' 는 모두 유효하고, '(]' 와 '([)] 는 무효입니다.분석: 본 문제는 창고 구조로 후진선출의 특성을 가지고 있다.유효한 것은 두 가지를 포함한다. 첫 번째는 닫힌 괄호라면 앞에 꼭 열린 괄호가 있어야 한다.두 번째는 최종 결과로 열려 있는 괄호를 모두 상쇄해야 한다.비교적 틀리기 쉬운 부분은 닫힌 괄호를 만났을 때 창고가 비어 있는지 아닌지를 먼저 판단해야 한다는 것이다.
NSMutableArray *arr = [NSMutableArray arrayWithArray:@[@"[",@"(",@"[",@"(",@"",@")",@"]",@")",@"]"]]; NSMutableArray *tmpArr = [NSMutableArray array]; for (NSString *str in arr) { if ([str isEqualToString:@"["]||[str isEqualToString:@"("]||[str isEqualToString:@"[tmpArr addObject:str]; } else { if (tmpArr.count == 0) { NSLog(@"NO"); return 0; }
            if ([str isEqualToString:@"]"]&&[tmpArr.lastObject isEqualToString:@"["]) {
                [tmpArr removeLastObject];
            }
            else if([str isEqualToString:@")"]&&[tmpArr.lastObject isEqualToString:@"("])
            {
                [tmpArr removeLastObject];
            }
            else if([str isEqualToString:@">"]&&[tmpArr.lastObject isEqualToString:@"

좋은 웹페이지 즐겨찾기