:param s: The string that will be rotated len(s) times. :return: A list with the rotations. :raises TypeError: If s is not an instance of str. Examples: >>> all_rotations("^BANANA|") # doctest: +NORMALIZE_WHITESPACE ['^BANANA|', 'BANANA|^', 'ANANA|^B', 'NANA|^BA', 'ANA|^BAN
(s: str)
| 22 | |
| 23 | |
| 24 | def all_rotations(s: str) -> list[str]: |
| 25 | """ |
| 26 | :param s: The string that will be rotated len(s) times. |
| 27 | :return: A list with the rotations. |
| 28 | :raises TypeError: If s is not an instance of str. |
| 29 | Examples: |
| 30 | |
| 31 | >>> all_rotations("^BANANA|") # doctest: +NORMALIZE_WHITESPACE |
| 32 | ['^BANANA|', 'BANANA|^', 'ANANA|^B', 'NANA|^BA', 'ANA|^BAN', 'NA|^BANA', |
| 33 | 'A|^BANAN', '|^BANANA'] |
| 34 | >>> all_rotations("a_asa_da_casa") # doctest: +NORMALIZE_WHITESPACE |
| 35 | ['a_asa_da_casa', '_asa_da_casaa', 'asa_da_casaa_', 'sa_da_casaa_a', |
| 36 | 'a_da_casaa_as', '_da_casaa_asa', 'da_casaa_asa_', 'a_casaa_asa_d', |
| 37 | '_casaa_asa_da', 'casaa_asa_da_', 'asaa_asa_da_c', 'saa_asa_da_ca', |
| 38 | 'aa_asa_da_cas'] |
| 39 | >>> all_rotations("panamabanana") # doctest: +NORMALIZE_WHITESPACE |
| 40 | ['panamabanana', 'anamabananap', 'namabananapa', 'amabananapan', |
| 41 | 'mabananapana', 'abananapanam', 'bananapanama', 'ananapanamab', |
| 42 | 'nanapanamaba', 'anapanamaban', 'napanamabana', 'apanamabanan'] |
| 43 | >>> all_rotations(5) |
| 44 | Traceback (most recent call last): |
| 45 | ... |
| 46 | TypeError: The parameter s type must be str. |
| 47 | """ |
| 48 | if not isinstance(s, str): |
| 49 | raise TypeError("The parameter s type must be str.") |
| 50 | |
| 51 | return [s[i:] + s[:i] for i in range(len(s))] |
| 52 | |
| 53 | |
| 54 | def bwt_transform(s: str) -> BWTTransformDict: |