Python PodstawyŁatwe

Usuń rekursywnie sąsiednie duplikaty

Szczegółowy przewodnik i implementacja Python dla problemu „Rekurencyjne usuwanie sąsiednich duplikatów”.

Oświadczenie o problemie

Łatwe

Napisz funkcję remove_adjacent_duplicates(s), która rekurencyjnie usuwa wszystkie sąsiednie zduplikowane znaki z ciągu s, dopóki nie pozostaną żadne sąsiednie duplikaty. W każdym przebiegu usuń wszystkie pary kolejnych identycznych znaków, a następnie powtórz proces na wynikowym ciągu, aż się ustabilizuje. Zwróć ostatni ciąg.

Ograniczenia
  • 0 <= len(s) <= 1000
  • s contains only lowercase English letters

Przykłady

Example 1
Input
s = 'aabccba'
Output
'a'
Explanation

First pass: remove 'aa' and 'cc' -> 'bba'. Second pass: remove 'bb' -> 'a'. No more adjacent duplicates.

Example 2
Input
s = 'abcddcba'
Output
''
Explanation

Remove 'dd' -> 'abccba'. Remove 'cc' -> 'abba'. Remove 'bb' -> 'aa'. Remove 'aa' -> ''. Empty string.

Example 3
Input
s = 'abcd'
Output
'abcd'
Explanation

No adjacent duplicates exist, so the string remains unchanged.

Need a Hint?
Rozważ użycie struktur danych specyficznych dla rekurencji, takich jak zestawy lub sterty.
Edge Cases to Watch
  • Puste struktury wejściowe
  • Wejścia jednoelementowe
  • Duże granice liczbowe

Gotowy do rozwiązania?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Otwórz w Edytorze
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.