스 택 을 사용 하여 괄호 가 일치 하 는 문 제 를 해결 합 니 다.
1->public Stack()빈 스 택 만 들 기
2->Public boolean empty()스 택 이 비어 있 는 지 테스트 합 니 다.
3->Public E pop()은 스 택 상단 의 대상 을 제거 하고 이 함수 의 값 으로 대상 을 되 돌려 줍 니 다.
4->public E push(E item)스 택 상단 에 항목 을 누 르 기
5->Public E peek()는 스 택 상단 의 대상 을 보지 만 스 택 에서 제거 하지 않 습 니 다.
6-->Public boolean empty()스 택 이 비어 있 는 지 테스트 합 니 다.
질문
묘사 하 다.
현재 괄호 서열 이 있 습 니 다.이 괄호 가 맞 는 지 확인 하 십시오.
입력
첫 번 째 줄 에 N(0
각 그룹의 입력 데이터 의 출력 이 한 줄 을 차지 합 니 다.이 문자열 에 포 함 된 괄호 가 짝 을 이 루 면 Yes 를 출력 하고,짝 을 이 루 지 않 으 면 No 를 출력 합 니 다.
코드:
package com.accp; import java.util.ArrayList; import java.util.List; /** * 스 택(Stack,선진 후 출력(FILO)의 데이터 구조) * @author Administrator * * @param
package com.accp;
public class Test01 {
public static void main(String[] args) {
System.out.println(checkBrace("[(2+3) * 5] + 9"));
System.out.println(checkBrace("{2 + ( 3 * 5} – 6)"));
System.out.println(checkBrace("(2+3)) * 5"));
}
/**
*
* @return true- , false-
*/
public static boolean checkBrace(String str) {
MyStack<Character> stack = new MyStack<Character>();
for(int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if(ch == '(' || ch == '[' || ch == '{') {
stack.push(ch);
// -
}
else if(ch == ')' || ch == '}' || ch == ']') {
// -
if(! stack.isEmpty()) {
//
char temp = stack.pop();
if(!(ch == ')' && temp == '(') &&
!(ch == ']' && temp == '[') &&
!(ch == '}' && temp == '{')) {
return false;
//
}
}
else { //
return false;
}
}
}
//
return stack.isEmpty();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.