formatting improvements, more rustic

This commit is contained in:
nkoch001
2019-01-20 18:35:49 +01:00
parent a61f0f7d29
commit 02ff991bb0
2 changed files with 45 additions and 34 deletions
+9 -9
View File
@@ -4,7 +4,7 @@
fn main() {
let input = "EbAAdbBEaBaaBBdAccbeebaec";
println!("Tallying {}", input);
let player_list = String::from(init_player_list(input.to_string()));
let player_list = init_player_list(input.to_string());
println!("These people are playing: {}", player_list);
let tally = tally(player_list, input.to_string());
@@ -13,30 +13,30 @@ fn main() {
}
// get all distinct characters
fn init_player_list(input: String) -> String{
fn init_player_list(input: String) -> String {
let mut result = String::new();
let ch = input.chars();
for cha in ch{
for cha in ch {
let lch = cha.to_lowercase().next().unwrap();
if !result.contains(lch){
if !result.contains(lch) {
result.push(lch);
}
}
return result
result
}
// tally each players scores
// lowercase => +1 point
// uppercase => -1 point
fn tally(player_list: String, tally: String) -> Vec<(char, i32)>{
fn tally(player_list: String, tally: String) -> Vec<(char, i32)> {
let mut v: Vec<(char, i32)> = Vec::new();
for (_i, player) in player_list.chars().enumerate() {
let count = (tally.matches(player).count() as i32) - (tally.matches(player
.to_uppercase().next().unwrap()).count() as i32);
let count = (tally.matches(player).count() as i32)
- (tally.matches(player.to_uppercase().next().unwrap()).count() as i32);
v.push((player, count));
}
v.sort_by_key(|v| v.1);
v.reverse();
return v
v
}