7/6(金) に行われる予定の勉強会( http://atnd.org/events/30285 )の参考問題( http://qiita.com/items/cbc3af152ee3f50a822f )の解答例、もう一つ。
まだ出てない言語で書こうということで、groovy。
poka.groovy
import java.util.regex.Pattern
def hands=[ "14":"4K", "23":"FH", "113":"3K", "122":"2P", "1112":"1P", "11111":"--" ]
def cardPattern=Pattern.compile( /[SHDC](\d+|J|Q|K|A)/ )
[ "DASAD10CAHA", "S10HJDJCJSJ",
"S10HAD10DAC10", "HJDJC3SJS3",
"S3S4H3D3DA", "S2HADKCKSK",
"SASJDACJS10", "S2S10H10HKD2",
"CKH10D10H3HJ", "C3D3S10SKS2",
"S3SJDAC10SQ", "C3C9SAS10D2"].each(
{ q->
m=cardPattern.matcher( (CharSequence)q )
ranks=[:].withDefault{0}
while( m.find() ){
++ranks[m.group(1)]
}
println( hands[ranks.values().sort().join()] )
} )
投稿のプレビューをみて初めて気づいたんだけど、シンタックスハイライト可能な言語リストに groovy が入っていない。
scala も coffeescript もあるのに groovy がないなんて。
それはさておき、java の正規表現ライブラリの使い方の勉強になった気がするが、実装内容としては新味がない。そんなものだと思う。