結果
問題 | No.18 うーさー暗号 |
ユーザー |
|
提出日時 | 2019-09-08 17:14:01 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 1 ms / 5,000 ms |
コード長 | 2,110 bytes |
コンパイル時間 | 12,643 ms |
コンパイル使用メモリ | 383,208 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-27 15:04:52 |
合計ジャッジ時間 | 13,533 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 13 |
ソースコード
fn getline() -> String {let mut __ret = String::new();std::io::stdin().read_line(&mut __ret).ok();return __ret;}fn codepoint_to_alphabet(codepoint: i32) -> &'static str {let alphabet = match codepoint {65 => "A",66 => "B",67 => "C",68 => "D",69 => "E",70 => "F",71 => "G",72 => "H",73 => "I",74 => "J",75 => "K",76 => "L",77 => "M",78 => "N",79 => "O",80 => "P",81 => "Q",82 => "R",83 => "S",84 => "T",85 => "U",86 => "V",87 => "W",88 => "X",89 => "Y",90 => "Z",97 => "a",98 => "b",99 => "c",100 => "d",101 => "e",102 => "f",103 => "g",104 => "h",105 => "i",106 => "j",107 => "k",108 => "l",109 => "m",110 => "n",111 => "o",112 => "p",113 => "q",114 => "r",115 => "s",116 => "t",117 => "u",118 => "v",119 => "w",120 => "x",121 => "y",122 => "z",_ => "",};alphabet}fn main() {let mut s = getline();s = s.trim().to_string();let s_vec: Vec<char> = s.chars().collect();let mut decrypted_s: String = "".to_string();for (ui, c) in s_vec.into_iter().enumerate() {let i = ui as i32;let codepoint = c as i32;let mut decrypted_codepoint = codepoint - ((i+1) % 26);if codepoint >= 97 && codepoint <= 122 { // a ~ zif decrypted_codepoint < 97 {decrypted_codepoint += 26;}} else if codepoint >= 65 && codepoint <= 90 { // A ~ Zif decrypted_codepoint < 65 {decrypted_codepoint += 26}}let alphabet = codepoint_to_alphabet(decrypted_codepoint);decrypted_s += alphabet;}println!("{}", decrypted_s);}