Biorąc pod uwagę ciąg znaków składający się z drukowalnych znaków ASCII , uzyskaj wynik składający się z jego unikalnych znaków w oryginalnej kolejności . Innymi słowy, dane wyjściowe są takie same jak dane wejściowe, z wyjątkiem tego, że znak jest usuwany, jeśli pojawił się wcześniej.
Nie można użyć żadnych wbudowanych funkcji wyszukiwania unikalnych elementów w tablicy (na przykład MATLAB ma unique
funkcję, która to robi). Chodzi o to, aby zrobić to ręcznie.
Dalsze szczegóły:
- Albo funkcje lub programy są dozwolone.
- Dane wejściowe i wyjściowe mogą być w postaci argumentów funkcji, stdin / stdout (nawet dla funkcji) lub ich kombinacji.
- Jeśli używane jest standardowe wejście lub standardowe wyjście, łańcuch jest rozumiany jako sekwencja znaków . Jeśli używane są argumenty funkcji, ciąg znaków, konieczne może być zamknięty w cudzysłowie lub równoważnych symboli języka programowania zastosowań wybór dla definiowania ciągów.
- Dane wyjściowe powinny być ciągiem zawierającym tylko unikalne znaki danych wejściowych. Więc nie ma żadnych dodatkowych podziałów wierszy, spacji itp. Jedynym wyjątkiem jest: jeśli wyjście jest wyświetlane w stdout, większość funkcji wyświetlania dodaje znak końcowy
\n
(aby oddzielić ciąg od tego, co będzie dalej). Więc jedno końcowe\n
jest dopuszczalne na standardowym wyjściu . - Jeśli to możliwe, opublikuj link do internetowego interpretera / kompilatora, aby inni mogli wypróbować Twój kod.
To jest kod golfowy , więc wygrywa najkrótszy kod w bajtach.
Kilka przykładów , zakładając stdin i stdout:
Ciąg wejściowy:
Type unique chars!
Łańcuch wyjściowy:
Type uniqchars!
Ciąg wejściowy
"I think it's dark and it looks like rain", you said
Łańcuch wyjściowy
"I think'sdarloe,yu
Ciąg wejściowy
3.1415926535897932384626433832795
Łańcuch wyjściowy
3.14592687