Repository navigation
Expand file tree
/
Copy pathblock_printer_letters.rs
More file actions
103 lines (102 loc) · 3.16 KB
/
Copy pathblock_printer_letters.rs
File metadata and controls
103 lines (102 loc) · 3.16 KB
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
use itertools::Itertools;
use std::collections::*;
fn block_print(s: &str) -> String {
let A = vec![
vec![
" AAA ", "A A", "A A", "AAAAA", "A A", "A A", "A A",
],
vec![
"BBBB ", "B B", "B B", "BBBB ", "B B", "B B", "BBBB ",
],
vec![
" CCC ", "C C", "C ", "C ", "C ", "C C", " CCC ",
],
vec![
"DDDD ", "D D", "D D", "D D", "D D", "D D", "DDDD ",
],
vec![
"EEEEE", "E ", "E ", "EEEEE", "E ", "E ", "EEEEE",
],
vec![
"FFFFF", "F ", "F ", "FFFFF", "F ", "F ", "F ",
],
vec![
" GGG ", "G G", "G ", "G GGG", "G G", "G G", " GGG ",
],
vec![
"H H", "H H", "H H", "HHHHH", "H H", "H H", "H H",
],
vec![
"IIIII", " I ", " I ", " I ", " I ", " I ", "IIIII",
],
vec![
"JJJJJ", " J", " J", " J", " J", " J", "JJJJ ",
],
vec![
"K K", "K K ", "K K ", "KK ", "K K ", "K K ", "K K",
],
vec![
"L ", "L ", "L ", "L ", "L ", "L ", "LLLLL",
],
vec![
"M M", "MM MM", "M M M", "M M", "M M", "M M", "M M",
],
vec![
"N N", "NN N", "N N", "N N N", "N N", "N NN", "N N",
],
vec![
" OOO ", "O O", "O O", "O O", "O O", "O O", " OOO ",
],
vec![
"PPPP ", "P P", "P P", "PPPP ", "P ", "P ", "P ",
],
vec![
" QQQ ", "Q Q", "Q Q", "Q Q", "Q Q Q", "Q QQ", " QQQQ",
],
vec![
"RRRR ", "R R", "R R", "RRRR ", "R R ", "R R ", "R R",
],
vec![
" SSS ", "S S", "S ", " SSS ", " S", "S S", " SSS ",
],
vec![
"TTTTT", " T ", " T ", " T ", " T ", " T ", " T ",
],
vec![
"U U", "U U", "U U", "U U", "U U", "U U", " UUU ",
],
vec![
"V V", "V V", "V V", "V V", "V V", " V V ", " V ",
],
vec![
"W W", "W W", "W W", "W W W", "W W W", "W W W", " W W ",
],
vec![
"X X", "X X", " X X ", " X ", " X X ", "X X", "X X",
],
vec![
"Y Y", "Y Y", " Y Y ", " Y ", " Y ", " Y ", " Y ",
],
vec![
"ZZZZZ", " Z", " Z ", " Z ", " Z ", "Z ", "ZZZZZ",
],
vec![
" ", " ", " ", " ", " ", " ", " ",
],
];
let mut v = (0..7).map(|_| vec![]).collect::<Vec<_>>();
for x in s.trim().to_uppercase().chars() {
for (i, e) in A[if x == ' ' { 26 } else { x as usize - 65 }]
.iter()
.cloned()
.enumerate()
{
v[i].push(e);
}
}
v.iter()
.map(|e| e.join(" ").trim_end().to_string())
.join("\n")
.trim_end()
.to_string()
}