Skip to content

Commit a38b2f9

Browse files
authored
refine(reverse_it): faster and more readable solution (#162)
* refactor(solutions/reverse_it): faster and more readable solution - Eliminates unnecessary borrowing (&nbr) - Avoids intermediate collection (Vec<char>) * refactor(solutions/reverse_it): more concise and idiomatic code
1 parent 4c70d5f commit a38b2f9

File tree

1 file changed

+4
-7
lines changed
  • solutions/reverse_it/src

1 file changed

+4
-7
lines changed

solutions/reverse_it/src/lib.rs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
pub fn reverse_it(nbr: i32) -> String {
2-
let s = &nbr.to_string();
3-
let str_nbr = s.trim_start_matches('-');
4-
let rev: Vec<char> = str_nbr.chars().rev().collect();
5-
if nbr >= 0 {
6-
return format!("{}{}", rev.into_iter().collect::<String>(), str_nbr);
7-
}
8-
return format!("-{}{}", rev.into_iter().collect::<String>(), str_nbr);
2+
let s = nbr.to_string();
3+
let abs_s = s.trim_start_matches('-');
4+
let rev = abs_s.chars().rev().collect::<String>();
5+
format!("{}{}{}", if nbr < 0 { "-" } else { "" }, rev, abs_s)
96
}
107

118
#[cfg(test)]

0 commit comments

Comments
 (0)