challenge LL Golf Hole 2 - 文字列に含まれる単語の最初の文字を大文字にする

文字列に含まれる単語について、それぞれの単語の最初の文字を大文字にしてください。

たとえば、"LL future" と与えられたときは "LL Future" と出力する。"LL day and night" と与えられたときは "LL Day And Night" と出力する。

与えられる文字列はリテラルで表記する、標準入力で与えられる、引数で与えられるなどは自由とします。

余力のあるものはこのプログラムを短くしてみたり、短くしてみたり、短くしてください。

※LL Future実行委員の高野光弘です。この出題は LL Future公式の出題であり、優れたものについてはLL Golfのセッションでご紹介させていただくかもしれません。ご理解の上、ご投稿ください。また、LL Futureのチケットは現在も発売中です。よろしければ、メインイベントの方にもぜひご参加ください。

1
ruby -e "p 'LL day and night'.scan(/(\w)(\w*)/).map{|a|a.shift.upcase + a.to_s}.join(' ')"

Posted feedbacks - Ruby

文字列に含まれる単語について、それぞれの単語の最初の文字を大文字にしてください。

たとえば、"LL future" と与えられたときは "LL Future" と出力する。"LL day and night" と与えられたときは "LL Day And Night" と出力する。

与えられる文字列はリテラルで表記する、標準入力で与えられる、引数で与えられるなどは自由とします。

余力のあるものはこのプログラムを短くしてみたり、短くしてみたり、短くしてください。

※LL Future実行委員の高野光弘です。この出題は LL Future公式の出題であり、優れたものについてはLL Golfのセッションでご紹介させていただくかもしれません。ご理解の上、ご投稿ください。また、LL Futureのチケットは現在も発売中です。よろしければ、メインイベントの方にもぜひご参加ください。

1
ruby -e "p 'LL day and night'.scan(/(\w)(\w*)/).map{|a|a.shift.upcase + a.to_s}.join(' ')"

文字列は標準入力で与えます。

お題のコードは、"hello, i am a cat"みたいな文が"Hello, Am Cat"になってしまうような。

1
ruby -pe'$_.gsub!(/(\w)(\w*)/){$1.upcase+$2}'

文字列は標準入力から

1
ruby -pe'gsub(/\w+/){$&.capitalize}'

文字列は標準入力から

1
ruby -pe'gsub(/\b./){$&.upcase}'

#6972 の ruby版。
1
2
z=gets.split //
puts(z.zip([' ']+z).map{|x,y|y=~/\w/?x:x.upcase}.join)

gorubyはKernel.#gsubがないのであまり短くならない。

1
goruby -pe'$_.gsub!(/\b./){$&.up}'

Ruby1.9用。Perlでも動くんではないかと思われます。

http://d.hatena.ne.jp/ku-ma-me/20080626/p1

http://d.hatena.ne.jp/shinichiro_h/20061107#1162835826

1
2
3
4
$/=' ';%#;$/=~('(?{'.(',  =$  )'^'_@|_
@||').'$&`,'.('/-).+`&/-'^'__@@_@@@_').'<>})');"#;(___=->(_,*__){$.=/./=~_
$><<([*?`...$&][$.]&&[*$&...?{][$.]?[*?@..$&][~(/@./=~[*$/..?@]*''+_)]+$':_)
__[$.]&&___[*__]})[*[*$<]]#"

1.9でも1.8.6でも動かないと思いますが, 1.8.7ならこんな感じでしょうか?

1
2
#!ruby -p
gsub /\b./,&:upcase

なるほど。
1
s$<.re.gs /\b./,&:up

Rubyが既に8件ありますが,久し振りに投稿.

単語間にタブが…とか細かいことは考えない.

正規表現とか,Rubyの構文とかを見直せばもっと短くなるんじゃないか?
1
2
3
4
puts gets.gsub(/(^.| .)/){$1.upcase}

# $ echo 'LL day and night'|ruby this_answer.rb
#=> LL Day And Night

Index

Feed

Other

Link

Pathtraq

loading...