Йоанна качи първо решение на 05.01.2018 13:38 (преди над 7 години)
Добро решение, но тоя chars().count()
цикли твърде много по низа, така че не давам бонус точка.
Към профила на Йоанна Николова
Compiling solution v0.1.0 (file:///tmp/d20180105-6053-esp411/solution) Finished dev [unoptimized + debuginfo] target(s) in 4.88 secs Running target/debug/deps/solution-3f98bfa5c86a5dd9 running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out Running target/debug/deps/solution_test-3d9e4ea2eafbbc82 running 5 tests test solution_test::test_extract_words_basic ... ok test solution_test::test_extract_words_extra ... ok test solution_test::test_search_multiple_words ... ok test solution_test::test_search_special_cases ... ok test solution_test::test_search_word ... ok test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out Doc-tests solution running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Добро решение, но тоя chars().count()
цикли твърде много по низа, така че не давам бонус точка.
Е, не ти трябва
chars().count()
. Вярно е, че за броене на символи ни трябва, но 0 си е 0, независимо дали байтове или символи. Ако има поне един байт, трябва да има поне един символ (всички низове в Rust са валиден utf8, задължително), просто може примерно 4 байта да са 2 символа, or something.Още повече, че
count
минава през всички символи, дори да е 0, така че това е доста неефективно :). По-добре откъм performance щеше да еchars().next().is_some()
.