Skip to content

Commit 5d99bb7

Browse files
committed
Create 423-reconstruct-original-digits-from-english.rs
1 parent aa012a1 commit 5d99bb7

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
// 脑筋急转弯
2+
// 数学归纳法
3+
pub fn original_digits(s: String) -> String {
4+
let string = s;
5+
let mut z = 0;
6+
let mut w = 0;
7+
let mut g = 0;
8+
let mut x = 0;
9+
let mut t = 0;
10+
let mut r = 0;
11+
let mut s = 0;
12+
let mut o = 0;
13+
let mut v = 0;
14+
let mut i = 0;
15+
for c in string.chars().collect::<Vec<char>>() {
16+
match c {
17+
'z' => z += 1,
18+
'w' => w += 1,
19+
'g' => g += 1,
20+
'x' => x += 1,
21+
't' => t += 1,
22+
'r' => r += 1,
23+
's' => s += 1,
24+
'o' => o += 1,
25+
'v' => v += 1,
26+
'i' => i += 1,
27+
_ => {},
28+
}
29+
}
30+
let mut n = vec!(0; 10);
31+
n[0] = z;
32+
n[2] = w;
33+
n[8] = g;
34+
n[6] = x;
35+
n[3] = t - n[2] - n[8];
36+
n[4] = r - n[3] - n[0];
37+
n[7] = s - n[6];
38+
n[1] = o - n[4] - n[2] - n[0];
39+
n[5] = v - n[7];
40+
n[9] = i - n[8] - n[6] - n[5];
41+
let mut ret = String::new();
42+
for (i, e) in n.iter().enumerate() {
43+
if *e == 0 { continue }
44+
for _ in 0..*e {
45+
ret.push_str(&i.to_string());
46+
}
47+
}
48+
ret
49+
}
50+
51+
fn main() {
52+
let s = "owoztneoer".to_string();
53+
println!("{:?}", original_digits(s));
54+
}

0 commit comments

Comments
 (0)