鉄棒
2024 ワード
質問する
私の答え
「」()に遭遇した場合は、スタックに入れる必要があります.
右かっこ')'に遭遇した場合は、すぐに前の文字と比較します.
前の文字が「(」面レーザーなので、stackで1つ弾いて、残りのstackの大きさを答えに加えればいいです.
前の文字が「)」なら鉄棒の先なので、答えに+1をつければいいのです.
++個人的にはindexを使うほうがいいと思いますが...
以前の値を保存し続けるのが面倒なので...
コアキー
この答え方は简単に闻こえますが、実力の差だと思います.
カッコを使う問題の大部分はスタックを使うと思います!
私の答え
import java.util.*;
class Main {
public int solution(String str) {
int answer = 0;
char bf = ' ';
Stack<Character> stack = new Stack<>();
for(char x : str.toCharArray()) {
if(x == '(') {
bf = x;
stack.push(x);
}
//x= 닫는괄호
else {
//lazer
if(bf == '(') {
bf = x;
stack.pop();
answer+=stack.size();
}
//쇠막대기 끝
else {
stack.pop();
answer += 1;
}
}
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.println(T.solution(str));
}
}
インデックス使用プールimport java.util.*;
class Main {
public int solution(String str) {
int answer = 0;
char bf = ' ';
Stack<Character> stack = new Stack<>();
for(int i=0; i<str.length(); i++) {
if(str.charAt(i) == '(') stack.push(str.charAt(i));
//x= 닫는괄호
else {
stack.pop();
//lazer
if(str.charAt(i-1) == '(') answer+=stack.size();
//쇠막대기 끝
else answer++;
}
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.println(T.solution(str));
}
}
解答方法「」()に遭遇した場合は、スタックに入れる必要があります.
右かっこ')'に遭遇した場合は、すぐに前の文字と比較します.
前の文字が「(」面レーザーなので、stackで1つ弾いて、残りのstackの大きさを答えに加えればいいです.
前の文字が「)」なら鉄棒の先なので、答えに+1をつければいいのです.
++個人的にはindexを使うほうがいいと思いますが...
以前の値を保存し続けるのが面倒なので...
コアキー
この答え方は简単に闻こえますが、実力の差だと思います.
カッコを使う問題の大部分はスタックを使うと思います!
Reference
この問題について(鉄棒), 我々は、より多くの情報をここで見つけました https://velog.io/@zmdals/쇠막대기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol