Remove adjacent duplicates recursively
Learn how to solve the 'Remove adjacent duplicates recursively' problem. This detailed resource details brute force and optimized approaches.
Problem Statement
Write a function remove_adjacent_duplicates(s) that recursively removes all adjacent duplicate characters from the string s until no adjacent duplicates remain. In each pass, remove all pairs of consecutive identical characters, then repeat the process on the resulting string until it stabilizes. Return the final string.
- •0 <= len(s) <= 1000
- •s contains only lowercase English letters
Examples
s = 'aabccba'
'a'
First pass: remove 'aa' and 'cc' -> 'bba'. Second pass: remove 'bb' -> 'a'. No more adjacent duplicates.
s = 'abcddcba'
''
Remove 'dd' -> 'abccba'. Remove 'cc' -> 'abba'. Remove 'bb' -> 'aa'. Remove 'aa' -> ''. Empty string.
s = 'abcd'
'abcd'
No adjacent duplicates exist, so the string remains unchanged.
Need a Hint?
Edge Cases to Watch
- Empty list or null input variables
- Single item lists/arrays
- Extremely large input bounds causing integer or stack overflow
Ready to Solve?
Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.