Znaki występujące co najmniej dwa razy

Zadanie 9 z 15 · rozdział 17Trudność: 1 z 3dictstring

Treść zadania

Wczytaj napis. Wypisz napis złożony z tych znaków, które występują w nim co najmniej 2 razy — każdy taki znak tylko raz, w kolejności pierwszego wystąpienia w napisie.

Dane wejściowe

  • 1. linia: napis bez spacji

Dane wyjściowe

Jedna linia: wynikowy napis. Jeśli żaden znak się nie powtarza — pusta linia (albo brak wyjścia).

Ograniczenia

  • napis ma od 1 do 100 znaków

Uwagi

  • Wielkość liter ma znaczenie: A i a to różne znaki.
  • Policz wystąpienia znaków w słowniku — kolejność kluczy w słowniku to kolejność pierwszego wystąpienia.

Przykład

Wejście
aaabbbccc
Wyjście
abc

Potrzebujesz teorii?

Zasady obowiązujące w rozdziale 17

Zadania w tym rozdziale ćwiczą pracę ze słownikami (dict): tworzenie, dodawanie i usuwanie par, zliczanie wystąpień oraz grupowanie danych według klucza.
Każde zadanie (oraz każdy podpunkt) jest osobnym, niezależnym programem: czyta standardowe wejście (stdin) i wypisuje wynik na standardowe wyjście (stdout).

Konwencje wspólne:

  • Dane wczytuj dokładnie w kolejności podanej w sekcji Wejście; jeśli w jednej linii jest kilka wartości — rozbij ją po spacjach.
  • Jeśli wynikiem jest słownik, wypisz go tak, jak robi to print(slownik) w Pythonie: {klucz: wartość, klucz: wartość} — pary oddzielone przecinkiem i spacją, po dwukropku spacja, klucze i wartości napisowe w apostrofach (np. {'ala': 2, 'ma': 1}), liczby bez apostrofów (np. {1: 1, 2: 4}), pusty słownik to {}.
  • Kolejność par w wypisanym słowniku to kolejność, w jakiej klucze były do niego dodawane (tak zachowuje się słownik w Pythonie).
  • Program nie wypisuje komunikatów typu „Podaj liczbę:”.

Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.

Python uruchomi się w przeglądarce przy pierwszym teście.

Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.

Testy

Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.

Test 1

Nie uruchomiono
Wejście
aabccdde
Oczekiwane wyjście
acd

Test 2

Nie uruchomiono
Wejście
abc
Oczekiwane wyjście
(brak)

Test 3

Nie uruchomiono
Wejście
abcabc
Oczekiwane wyjście
abc

Test 4

Nie uruchomiono
Wejście
programowanie
Oczekiwane wyjście
roa

Test 5

Nie uruchomiono
Wejście
AaBbAa
Oczekiwane wyjście
Aa

Test 6

Nie uruchomiono
Wejście
1122!!?
Oczekiwane wyjście
12!
Uruchom z własnymi danymi