aboutsummaryrefslogtreecommitdiff
path: root/other/string_compression.rs
diff options
context:
space:
mode:
Diffstat (limited to 'other/string_compression.rs')
-rw-r--r--other/string_compression.rs38
1 files changed, 0 insertions, 38 deletions
diff --git a/other/string_compression.rs b/other/string_compression.rs
deleted file mode 100644
index 1d5db7d..0000000
--- a/other/string_compression.rs
+++ /dev/null
@@ -1,38 +0,0 @@
-struct Solution;
-
-impl Solution {
- pub fn compress(chars: &mut Vec<char>) -> i32 {
- let (mut i, mut j, mut count, mut last_char) = (0, 1, 1, chars[0]);
- while j < chars.len() {
- if chars[j] == last_char {
- count += 1;
- } else {
- chars[i] = last_char;
- i += 1;
- if count > 1 {
- count.to_string().chars().for_each(|x| {
- chars[i] = x;
- i += 1;
- });
- }
- last_char = chars[j];
- count = 1;
- }
- j += 1;
- }
- chars[i] = last_char;
- i += 1;
- if count > 1 {
- count.to_string().chars().for_each(|x| {
- chars[i] = x;
- i += 1;
- });
- }
- i as i32
- }
-}
-
-fn main() {
- let mut c = vec!['a','a','b','b','c','c','c'];
- print!("{}", Solution::compress(&mut c));
-}