Description:
You are given a string representation of a list of numbers.
You need to perform the following steps:
- Convert the string into a list of numbers.
- Rearrange the elements of the list so that:
- All even numbers come at the beginning of the list.
- All odd numbers come at the end of the list.
- Return a string consisting of the numbers, separated by spaces.
- If the list contains only even or only odd numbers, return the string unchanged.
Example №1
Input: "5 2 4 7 3 8 1"
Output: "2 4 8 5 7 3 1"
Example №2
Input: "1 3 5 7 9"
Output: "1 3 5 7 9"
Hint:
Use Python methods for filtering and sorting the list.
If you need to check whether a number is even or odd, use the modulo operation (%).
Описание:
Дано строковое представление списка чисел.
Нужно выполнить следующее:
- Преобразовать строку в список чисел.
- Переставить элементы этого списка так, чтобы:
- Все чётные числа стали в начале списка.
- Все нечётные числа — в конце списка.
- Вернуть строку, которая состоит из чисел, разделённых пробелами.
- Если в списке все числа чётные или все нечётные, верните строку без изменений.
Пример №1
Ввод: "5 2 4 7 3 8 1"
Вывод: "2 4 8 5 7 3 1"
Пример №2
Ввод: "1 3 5 7 9"
Вывод: "1 3 5 7 9"
Подсказка:
Используйте Python-методы для фильтрации и сортировки списка.
Если вам нужно проверить четность числа, используйте операцию взятия остатка от деления.
def rearrange_numbers(numbers: str) -> str:
# Преобразуем строку в список чисел
num_list = list(map(int, numbers.split()))
# Разделим числа на чётные и нечётные
even_numbers = [num for num in num_list if num % 2 == 0]
odd_numbers = [num for num in num_list if num % 2 != 0]
# Если все числа одинакового типа, возвращаем исходную строку
if not even_numbers or not odd_numbers:
return numbers
# Сначала чётные, потом нечётные
result = even_numbers + odd_numbers
# Преобразуем результат обратно в строку
return ' '.join(map(str, result))
import codewars_test as test
from solution import rearrange_numbers
@test.describe("Example Tests")
def test_group():
@test.it("Test Case 1")
def test_case_1():
test.assert_equals(rearrange_numbers("5 2 4 7 3 8 1"), "2 4 8 5 7 3 1")
@test.it("Test Case 2")
def test_case_2():
test.assert_equals(rearrange_numbers("1 3 5 7 9"), "1 3 5 7 9")
@test.it("Test Case 3")
def test_case_3():
test.assert_equals(rearrange_numbers("2 4 6 8"), "2 4 6 8")
@test.it("Test Case 4")
def test_case_4():
test.assert_equals(rearrange_numbers("9 7 5 3"), "9 7 5 3")
@test.it("Test Case 5")
def test_case_5():
test.assert_equals(rearrange_numbers("1 2 3 4 5 6 7 8"), "2 4 6 8 1 3 5 7")
@test.it("Test Case 6")
def test_case_6():
test.assert_equals(rearrange_numbers("10 20 30"), "10 20 30")
@test.it("Test Case 7")
def test_case_7():
test.assert_equals(rearrange_numbers("21 22"), "22 21")