Я не могу понять разницу кода Rust - PullRequest
1 голос
/ 11 ноября 2019

Я пытаюсь решить эту проблему в codewars. https://www.codewars.com/kata/are-they-the-same/

Я написал следующий код.

fn comp(mut a: Vec<i64>, mut b: Vec<i64>) -> bool {
    a.sort();
    b.sort();
    a = a.iter().map(|x| x * x).collect();

    a == b
}

Система судей говорит, что есть ввод, который мой код возвращает false, но должен быть верным. Я не могу понять, в чем проблема.

Я видел ответы других людей, которые прошли все тесты. Это один из них.

fn comp(a: Vec<i64>, b: Vec<i64>) -> bool {
    let mut a1 = a.iter().map(|&x| x * x).collect::<Vec<_>>(); 
    let mut a2 = b;
    a1.sort();
    a2.sort();
    a1 == a2
}

Порядок возведения в квадрат и сортировки важен?

1 Ответ

7 голосов
/ 11 ноября 2019

Скорее всего, некоторые входные данные содержат отрицательные числа, для которых порядок имеет значение. Например. -2 < -1, но (-2)² > (-1)².

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...