ペアリング削除
🔗 質問リンク
https://programmers.co.kr/learn/courses/30/lessons/12973#
問題の説明
ペアリングを削除するには、アルファベット小文字の文字列で開始します.まず、文字列内で同じ文字を2つ持つペアを検索します.次に、この2つの文字列を削除し、前後に文字列を接続します.この手順を繰り返してすべての文字列を削除すると、ペアリングの削除が終了します.文字列Sが指定されている場合は、ペアリングを正常に削除できるかどうかを返す戻り関数を完了します.成功した場合は1を返し、そうでない場合は0を返します.
例えば、文字列S=Baabaa
b aa baa → bb aa → aa →
すべての文字列を中の順序で削除できるため、1を返します.⚠▼制限
文字列の長さ:100,000未満の自然数
すべての文字列は小文字で構成されています.
💡 プール(言語:JavaとPython)
forはドアの周りを一度スタックに積み上げ、同じものが現れたらスタックから削除し、同時にパリティ文字をスタックに入れず、発見したらすぐに削除する解題方法です.
Java
import java.util.*;
class Solution {
public int solution(String s) {
Stack<Character> stack = new Stack<>();
for (char c : s.toCharArray()) {
if (stack.size() == 0)
stack.push(c);
else if (stack.peek() == c)
stack.pop();
else
stack.push(c);
}
return stack.size() == 0 ? 1 : 0;
}
}
Python
def solution(s):
stack = []
for i in s:
if len(stack) == 0: stack.append(i)
elif stack[-1] == i: stack.pop()
else: stack.append(i)
if len(stack) == 0:
return 1
else:
return 0
Reference
この問題について(ペアリング削除), 我々は、より多くの情報をここで見つけました https://velog.io/@shiningcastle/짝지어-제거하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol