LoginSignup
13
13

More than 5 years have passed since last update.

Rubyで使う機会があれば嬉しい「乙な」メソッドたち

Last updated at Posted at 2014-07-14

背景

  • Coderbyteのプログラミング問題をやっていて、他の人の解法で遭遇したメソッドたち。
  • 使う機会があればかなり嬉しい、乙なメソッドを集めたつもりです。
  • 順次追加します。

--

String

count(letter) -> int

  • 文字列に対して呼ぶと、letterで指定した文字が何個存在するか教えてくれる
  • letterに二文字以上の文字列を入れると、一文字ずつ検索して、全部合算した個数を教えてくれる
"word of string".count "o" #=> 2
"word of string".count "wo" #=> 3

next -> new_str

  • 文字列が持つ英数字の中で一番右端の一文字を、 "アルファベット/10進数の数字の並び順で次にあたる文字"に変更する
  • succでも呼べる
"9".next #=> "10"
"hello".next #=> "hellp"

Array

permutation(n) -> enum

  • 与えられた配列から、 順番を並び替えた新しい配列を作れるだけつくり、それらを二次元配列として格納して返す。
  • 引数で数字を渡すと、 その数字を配列の長さとしたときに作成可能な配列を返す
  • (数学に慣れている人への説明: 「順列」)
[1,2,3].permutation.to_a    #=> [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
[1,2,3].permutation(2).to_a #=> [[1,2],[1,3],[2,1],[2,3],[3,1],[3,2]]

combination(n) -> enum

  • 与えられた配列から、 順番を無視して、n個の長さとして作成可能な新しい配列をつくり、二次元配列で返す。
  • (数学に慣れている人に取っての: 「組み合わせ」)
[1,2,3].combination(3).to_a #=> [[1,2,3]]
[1,2,3].combination(2).to_a #=> [[1,2],[1,3],[2,3]]
13
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
13