Йоанна качи първо решение на 05.01.2018 13:38 (преди почти 8 години)
Добро решение, но тоя 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().