Bardzo trudno zapamiętać moje hasło, więc wymyśliłem sposób na wygenerowanie hasła.
Generuję moje hasło ze słowa lub zdania, wykonując następujące kroki:
Zacznij od lewej do prawej
Znajdź liczbę każdej litery
Ułóż literę z jej liczbą w kolejności
Na końcu pojawią się litery o większej powtarzalności
Listy o tym samym powtórzeniu zostaną uporządkowane alfabetycznie
Liczby i litery specjalne będą ignorowane, w tym spacje (np. 9, 4, @, (, * itd. Są ignorowane)
Grupuj litery ignorując wielkość liter. W danych wyjściowych użyj przypadku ostatniego wystąpienia na wejściu
- Liczba liter może być dowolną liczbą, np. 5H17M345K
- Jeśli wejściowe są wszystkie cyfry lub litery specjalne, wówczas wyjściowy będzie pusty ciąg znaków, np. Wpisz „12 $ * 34 ^!” następnie wyślij „”
- gdy kolejność dla tego samego wystąpienia alfabetycznie nie ma znaczenia, np. 1a1B1c
Przykład:
Input: Kitkat Tango
(2k / 1i / 3T / 2a / 1n / 1g / 1o)
Output: 1g1i1n1o2a2k3T
Inny przykład:
Input: Database Partitions Task
(1D / 5a / 4T / 1b / 3s / 1e / 1P / 1r / 2i / 1o / 1n / 3s / 1k)
Output: 1b1D1e1k1n1o1P1r2i3s4T5a
Uwaga: litery z 1 powtórzeniem są na początku uporządkowane alfabetycznie, a następnie z większą liczbą powtórzeń
To jest code-golf , wygrywa najkrótszy kod.
1.
dodać co najmniej 1 przypadek testowy, który zawiera więcej niż 9 wystąpień jednej lub więcej liter, 2.
określ, że dane wyjściowe muszą być ciągiem (chociaż zdecydowanie zalecałbym, aby nie być tak ścisłym; nie dodaje niczego do wyzwania ), 3.
określ, że musimy być w stanie obsłużyć dane wejściowe nie zawierające liter, i 4.
wyjaśnij, czy musimy obsłużyć pusty ciąg znaków jako dane wejściowe.
1
. Ponadto w przyszłości możesz rozważyć skorzystanie z naszej piaskownicy w celu rozwiązania takich problemów przed opublikowaniem wyzwania.