blob: 55a1fec59af014ebe4f526555d9266825523a191 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
struct Solution;
impl Solution {
pub fn count_and_say(n: i32) -> String {
if n == 1 {
return "1".to_string();
}
let mut output: Vec<char> = vec![];
let mut last_char = ' ';
let mut count: u8 = '0' as u8;
for char in Solution::count_and_say(n - 1).chars().into_iter() {
if last_char == ' ' {
last_char = char;
count = '1' as u8;
} else if char == last_char {
count += 1;
} else {
output.push(count as char);
output.push(last_char);
last_char = char;
count = '1' as u8;
}
}
output.push(count as char);
output.push(last_char);
output.into_iter().collect()
}
}
fn main() {
print!("{}", Solution::count_and_say(4));
}
|