|
| 1 | +level = "easy" |
| 2 | +name = "squad_split" |
| 3 | +tags = ["collections"] |
| 4 | +time_to_solve_sec = 230 |
| 5 | + |
| 6 | +description_en = """ |
| 7 | +The kids split into teams. Given a list of `names` and an index `k`, return two lists: the first `k` names and the rest. If `k` is negative, count from the end. Clamp `k` to the range from `0` to the list length. |
| 8 | +""" |
| 9 | + |
| 10 | +description_ru = """ |
| 11 | +Дети делятся на команды. Дан список `names` и индекс `k`, верните два списка: первые `k` имен и оставшиеся. Если `k` отрицателен, считайте от конца. Ограничьте `k` диапазоном от `0` до длины списка. |
| 12 | +""" |
| 13 | + |
| 14 | +solution = """ |
| 15 | +def solution(names: list[str], k: int) -> list[list[str]]: |
| 16 | + if k < 0: |
| 17 | + k = len(names) + k |
| 18 | + k = max(0, min(k, len(names))) |
| 19 | + return [names[:k], names[k:]] |
| 20 | +""" |
| 21 | + |
| 22 | +examples = """ |
| 23 | +solution([], 0) == [[], []] |
| 24 | +solution(["Mike"], -1) == [[], ["Mike"]] |
| 25 | +solution(["Mike", "Dustin"], 1) == [["Mike"], ["Dustin"]] |
| 26 | +""" |
| 27 | + |
| 28 | +[[input_signature]] |
| 29 | +argument_name = "names" |
| 30 | +[input_signature.type] |
| 31 | +name = "array" |
| 32 | +[input_signature.type.nested] |
| 33 | +name = "string" |
| 34 | + |
| 35 | +[[input_signature]] |
| 36 | +argument_name = "k" |
| 37 | +[input_signature.type] |
| 38 | +name = "integer" |
| 39 | + |
| 40 | +[output_signature.type] |
| 41 | +name = "array" |
| 42 | +[output_signature.type.nested] |
| 43 | +name = "array" |
| 44 | +[output_signature.type.nested.nested] |
| 45 | +name = "string" |
| 46 | + |
| 47 | +[[asserts]] |
| 48 | +arguments = [[], 0] |
| 49 | +expected = [[], []] |
| 50 | + |
| 51 | +[[asserts]] |
| 52 | +arguments = [["Mike"], 0] |
| 53 | +expected = [[], ["Mike"]] |
| 54 | + |
| 55 | +[[asserts]] |
| 56 | +arguments = [["Mike"], 1] |
| 57 | +expected = [["Mike"], []] |
| 58 | + |
| 59 | +[[asserts]] |
| 60 | +arguments = [["Mike"], 2] |
| 61 | +expected = [["Mike"], []] |
| 62 | + |
| 63 | +[[asserts]] |
| 64 | +arguments = [["Mike"], -1] |
| 65 | +expected = [[], ["Mike"]] |
| 66 | + |
| 67 | +[[asserts]] |
| 68 | +arguments = [["Mike", "Dustin"], 1] |
| 69 | +expected = [["Mike"], ["Dustin"]] |
| 70 | + |
| 71 | +[[asserts]] |
| 72 | +arguments = [["Mike", "Dustin"], 2] |
| 73 | +expected = [["Mike", "Dustin"], []] |
| 74 | + |
| 75 | +[[asserts]] |
| 76 | +arguments = [["Mike", "Dustin"], 3] |
| 77 | +expected = [["Mike", "Dustin"], []] |
| 78 | + |
| 79 | +[[asserts]] |
| 80 | +arguments = [["Mike", "Dustin"], -1] |
| 81 | +expected = [["Mike"], ["Dustin"]] |
| 82 | + |
| 83 | +[[asserts]] |
| 84 | +arguments = [["Mike", "Dustin"], -2] |
| 85 | +expected = [[], ["Mike", "Dustin"]] |
| 86 | + |
| 87 | +[[asserts]] |
| 88 | +arguments = [["Lucas", "Max", "Eleven"], 1] |
| 89 | +expected = [["Lucas"], ["Max", "Eleven"]] |
| 90 | + |
| 91 | +[[asserts]] |
| 92 | +arguments = [["Lucas", "Max", "Eleven"], 2] |
| 93 | +expected = [["Lucas", "Max"], ["Eleven"]] |
| 94 | + |
| 95 | +[[asserts]] |
| 96 | +arguments = [["Lucas", "Max", "Eleven"], 3] |
| 97 | +expected = [["Lucas", "Max", "Eleven"], []] |
| 98 | + |
| 99 | +[[asserts]] |
| 100 | +arguments = [["Lucas", "Max", "Eleven"], -1] |
| 101 | +expected = [["Lucas", "Max"], ["Eleven"]] |
| 102 | + |
| 103 | +[[asserts]] |
| 104 | +arguments = [["Will", "Joyce", "Hopper"], 0] |
| 105 | +expected = [[], ["Will", "Joyce", "Hopper"]] |
| 106 | + |
| 107 | +[[asserts]] |
| 108 | +arguments = [["Will", "Joyce", "Hopper"], 2] |
| 109 | +expected = [["Will", "Joyce"], ["Hopper"]] |
| 110 | + |
| 111 | +[[asserts]] |
| 112 | +arguments = [["Will", "Joyce", "Hopper"], -2] |
| 113 | +expected = [["Will"], ["Joyce", "Hopper"]] |
| 114 | + |
| 115 | +[[asserts]] |
| 116 | +arguments = [["Steve", "Robin", "Nancy"], 2] |
| 117 | +expected = [["Steve", "Robin"], ["Nancy"]] |
| 118 | + |
| 119 | +[[asserts]] |
| 120 | +arguments = [["Steve", "Robin", "Nancy"], 5] |
| 121 | +expected = [["Steve", "Robin", "Nancy"], []] |
| 122 | + |
| 123 | +[[asserts]] |
| 124 | +arguments = [["Erica"], -2] |
| 125 | +expected = [[], ["Erica"]] |
| 126 | + |
| 127 | +[[asserts]] |
| 128 | +arguments = [["Eddie", "Chrissy"], 0] |
| 129 | +expected = [[], ["Eddie", "Chrissy"]] |
| 130 | + |
| 131 | +[[asserts]] |
| 132 | +arguments = [["Eddie", "Chrissy"], -1] |
| 133 | +expected = [["Eddie"], ["Chrissy"]] |
| 134 | + |
| 135 | +[[asserts]] |
| 136 | +arguments = [["Murray", "Alexei", "Yuri"], -3] |
| 137 | +expected = [[], ["Murray", "Alexei", "Yuri"]] |
| 138 | + |
| 139 | +[[asserts]] |
| 140 | +arguments = [["Bob", "Karen", "Ted", "Holly"], 2] |
| 141 | +expected = [["Bob", "Karen"], ["Ted", "Holly"]] |
| 142 | + |
| 143 | +[[asserts]] |
| 144 | +arguments = [["Argyle", "Eden", "Jonathan"], -1] |
| 145 | +expected = [["Argyle", "Eden"], ["Jonathan"]] |
0 commit comments