Антонио качи първо решение на 21.10.2021 00:56 (преди почти 4 години)
Работещо решение, макар че е разбито малко на ситно. Няма лошо да си организираш кода на по-малки части, но има смисъл да го правиш, ако 1) тази част се преизползва и може да ѝ се даде смислено име, или 2) кода в една функция става твърде много и труден за четене.
Примерно, reverse_rna_complement
разбито на 3 части има смисъл, донякъде, като "много код, разбит на high-level компоненти". От друга страна, match_bases
и increment_counters
извадени от мястото, на което се използват, само увеличава индирекцията, слага едно допълнително място, на което трябва да скочи човек, за да разбере кода.
As a side note, обръщането на вектор го има в стандартната библиотека: https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.reverse