スコーンの開発日記

開発中の学びをまとめていく。

Ruby

Rubyでスタックを扱う

LeetCodeで面白い問題を見つけたので、理解を深めるために復習する。 スタックを使ったアルゴリズム。 leetcode.com 問題 Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. An inp…

RubyでBacktracking

いつものようにLeetCodeをやっていると、解法としてBacktrackingというものが出てきた。アルゴリズムの名前らしい。 leetcode.com Backtrackingとはなんだろうか。 問題 まず解くべき問題を説明する。 2-9の数字からなる文字列が与えられる。それぞれの数字…

LeetCode復習 (8. String to Integer (atoi))

最近LeetCodeをコツコツやっている。 こちらの問題で、自分では数十行書いていた処理が他の人の解答ではたったの6行で感動した。 後学のために、処理内容を1行ずつ見ていく。 leetcode.com 問題 StringをIntegerに変換する。 数値は正負の符号を含む 文字列…

【Ruby】文字列とシンボルの違い

文字列とシンボルの違いがよくわかっていないので整理する。 シンボルとは? Symbolクラスのレファレンスを見てみる。 docs.ruby-lang.org Rubyの内部実装では、メソッド名や変数名、定数名、クラス名など の`名前'を整数で管理しています。これは名前を直接…

【Ruby】putsとpの違い

putsかpか Railsのrakeタスクでバッチ処理を実行する際にログを標準出力したい。その場合、 puts と p のどちらがよいのか? irb(main):001:0> p 'abc' "abc" => "abc" irb(main):002:0> puts 'abc' abc => nil puts puts は to_s を呼び出す。戻り値は nil…