formatting improvements, more rustic
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user