「カンマの前の文字列」に「カンマの後の文字」が右から何番目にあるかを表示。
なければ-1を表示する。
設問
You are given a string 'S' and a character 't'. Print out the position of the rightmost occurrence of 't'(case matters) in 'S' or -1 if there is none. The position to be printed out is zero based.
Input sample:
The first argument is a file, containing a string and a character, comma delimited, one per line. Ignore all empty lines in the input file.e.g.
Hello World,r Hello CodeEval,E
Output sample:
Print out the zero based position of the character 't' in string 'S', one per line. Do NOT print out empty lines between your output.
e.g.
8 10
やってみた
#!/usr/bin/env ruby ARGF.lines do |line| str, char = line.chomp.split(',') puts str.rindex(char) || -1 end
参考
RubyでRightmost Charを解く -CodeEval - hp12c
#!/usr/bin/env ruby ARGF.lines do |line| if m = line.match(/^(.*),(\w)/) res = m.captures.instance_eval { first.rindex last } puts res ? res : -1 end end
やってることは基本同じですが
instance_evalを使っている。なるほどこういう書き方もできるんですね。
MatchData#capturesも知らんかったわ。