Java를 사용하여 Nanyang Institute of Technology acm 온라인 평가 연습의 두 번째 문제인 대진표 일치를 달성하세요.
답은 다음과 같습니다
#include
#include
#include 네임스페이스 std 사용; char str[10000 + 11]; int main() { int n , i, l; scanf("%d", &n); while (n--) { memset(str, '0', sizeof(str)); //배열 지우기 scanf("%s", str); l = strlen(str ) ; stack bool ans = true; for (i = 0; i { if (str[i] == '(' || str[i] == '[') //입력할 문자가 앞괄호인 경우 입력합니다. , 결국 자기 자신만 남더라도 비어 있지 않기 때문이며, 아니요 stk.push(str[i]); else if (str[ i] == ')')//입력할 문자는 뒷괄호입니다. 이때 스택이 비어 있으면 이것이 첫 번째 문자입니다. 아쉽게도 루프가 종료됩니다. { if (stk.empty()) { stk.push(str[i]); p> break; } else if (stk.top() == '(')//스택의 맨 위가 이번에는 이전 괄호이므로 스택의 맨 위를 삭제하고 입력할 내용을 입력할 필요가 없습니다. stk.pop(); else { ans = false;//현재 스택에 요소가 있지만 스택 상단이 일치하지 않는 등의 다른 상황 슬플 것입니다. 입력하지 마세요. false, 실행하세요. break; } } else if (str [i] == ']') { if (stk.empty()) { stk.push (str[i]); break; } else if (stk.top() == '[') stk.pop(); else { ans = false; break; } } } if (!stk.empty()) ?//스택이 비어 있고, 비어 있지 않은 것은 모두 false입니다 ans = false; if (ans) printf("예\n"); else printf("No\n"); } return 0; }링크를 열려면 클릭하세요.