Biorąc pod uwagę jedną linię, która składa się tylko z liter, wykonaj następujące czynności:
- Utrzymujesz ciąg pusty na początku.
- Jeśli następny ciąg wejściowy znajduje się w ciągu, usuń go z ciągu.
- Jeśli następnego znaku wejściowego nie ma w ciągu, dołącz go do ciągu.
Wyprowadza końcowy stan ciągu.
Możesz bezpiecznie założyć, że dane wejściowe zawierają co najmniej jeden znak (tzn. Niepuste), ale nie ma gwarancji, że dane wyjściowe nie są puste.
Pseudokod (zachęcamy do gry w golfa):
str = EMPTY
for each character ch in input
if ch exists in str
remove all ch from str
else
append ch to str
print str
Dane wejściowe pasują do wyrażenia regularnego ^[A-Za-z]+$.
Przykładowe przypadki testowe:
ABCDBCCBE -> ADCBE
ABCXYZCABXAYZ -> A
aAABBbAbbB -> aAbB
GG -> (empty)
Dane wejściowe można podać w dowolny odpowiedni sposób, ale należy je traktować jako ciąg znaków i to samo dla danych wyjściowych. Program nie powinien wychodzić z błędem.
Zwycięża najkrótszy program w każdym języku!
Dodatkowe (opcjonalne): wyjaśnij, jak działa Twój program. Dziękuję Ci.