Решение на Bigint от Ивайло Атовски
Обратно към всички решения
Към профила на Ивайло Атовски
Резултати
- 15 точки от тестове
- 1 бонус точка
- 16 точки общо
- 15 успешни тест(а)
- 0 неуспешни тест(а)
Код
Лог от изпълнението
Compiling solution v0.1.0 (/tmp/d20201127-2274206-63j22j/solution)
Finished test [unoptimized + debuginfo] target(s) in 1.78s
Running target/debug/deps/solution_test-589a43f0f4b10ca3
running 15 tests
test solution_test::test_bigint_construction ... ok
test solution_test::test_bigint_nonzero_sign ... ok
test solution_test::test_bigint_zero_sign ... ok
test solution_test::test_comparison ... ok
test solution_test::test_invalid_string ... ok
test solution_test::test_neutralization ... ok
test solution_test::test_parsing_with_and_without_sign ... ok
test solution_test::test_parsing_with_leading_zeroes ... ok
test solution_test::test_sub_1_basic ... ok
test solution_test::test_sub_2_diferent_lengths ... ok
test solution_test::test_sub_3_carry ... ok
test solution_test::test_sum_1_basic ... ok
test solution_test::test_sum_2_different_lengths ... ok
test solution_test::test_sum_3_overflow ... ok
test solution_test::test_sum_4_negative ... ok
test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
История (1 версия и 3 коментара)
Ивайло качи първо решение на 26.11.2020 14:53 (преди почти 5 години)
Вместо ръчно да pattern-match-ваш, метода
.unwrap()
щеше да ти свърши същата работа. А ако искаш да провериш дали резултата е грешка, можеш да провериш.is_err()
вместо да panic-ваш. По този начин, ако кода panic-не без да си го очаквал (примерно заради невалиден utf8 достъп или нещо такова), ще можеш да си видиш грешката.Сравнение с -0 тук е малко странно. Защо минус? Парсенето на -0 и +0 би работело по един и същ начин, но това не е нещото, което тестваш тук, тестваш събиране, няма предимство в това да сложиш -0 тук, или "" по-долу. По-скоро има логика да сложиш "каноничната форма" на резултата за яснота.