AnDeriensのブログ

個人的なブログです

初心者がRustで解くatCoder ABC189 A - Slot

イントロ

Rustの文法勉強のためにatCoderのA問題解いてみたのでその記録です。 ほんとうに最初の文法を少しかじったくらいなので、間違っていることはあると思います。ご容赦ください。

実装

https://atcoder.jp/contests/abc189/submissions/28515807

use std::io;
 
fn main() {
    let mut input = String::new();
 
    io::stdin().read_line(&mut input).expect("yeah.");
 
    let first_char = input.chars().nth(0);
    let second_char = input.chars().nth(1);
    let third_char = input.chars().nth(2);
 
    let first_equals_second = first_char == second_char;
    let second_equals_third = third_char == second_char;
 
    if first_equals_second && second_equals_third {
        println!("Won")
    } else {
        println!("Lost")
    }
}

調べたこと

mainファイル以外をcargo runで実行したい

  • binファイルとして登録して実行する。
  • Cargo.tomlに登録必要

Rust:Cargoでmain.rs以外のソースファイルのmain()関数を実行する - Qiita

n文字目を取得

  • chars().nth() を使う

Rust で文字列の n 文字目の文字を取得 - Qiita

文字列と文字列スライス

今回使ったのは、文字列スライスじゃなくて、文字列かな。

スライス型 - The Rust Programming Language 日本語版

[Rust] &strとStringを理解しようと思ったらsliceやmutを理解できてないことに気づいた話 - Qiita

所感

やっぱり速いんですね。

f:id:anderiens:20220115115352p:plain