Skip to content

Instantly share code, notes, and snippets.

@malted
Created September 26, 2022 16:14
Show Gist options
  • Save malted/91d0b46f27783c4956440a522fdb3114 to your computer and use it in GitHub Desktop.
Save malted/91d0b46f27783c4956440a522fdb3114 to your computer and use it in GitHub Desktop.
Rust Run-Length Encoding
fn main() {
println!("Original text:\t");
let mut line = String::new();
std::io::stdin().read_line(&mut line).unwrap();
line = line.trim().to_string();
let mut last_character = line.chars().next().unwrap();
let mut character_count = 0;
let mut final_string = String::new();
for character in line.chars() {
if character == last_character {
character_count += 1;
} else {
final_string.push_str(format!("{}{}", last_character, character_count).as_str());
character_count = 1;
}
last_character = character;
}
final_string.push_str(format!("{}{}", last_character, character_count).as_str());
println!("{}", final_string);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment