original page : http://ja.doukaku.org/249/
与えた文章の各単語の最初と最後の文字以外の文字を入れ替えた文章を出力する処理を実装して下さい。元の文章の与え方は特に問いません。
#! c:\ruby\bin\ruby.exe -Ks class Cmabrigde def self.convert(word) cs = word.split("") (cs.size <= 3) ? word : cs.first + cs[1..-2].sort_by { |c| rand }.join("") + cs.last end end source = <<EOS こんにちは みなさん おげんき ですか? わたしは げんき です。 この ぶんしょう は いぎりす の ケンブリッジ だいがく の けんきゅう の けっか にんげん は もじ を にんしき する とき その さしいょ と さいご の もじさえ あっていれば じゅんばん は めちゃくちゃ でも ちゃんと よめる という けんきゅう に もとづいて わざと もじの じゅんばん を いれかえて あります。 どうです? ちゃんと よめちゃう でしょ? ちゃんと よめたら はんのう よろしく EOS source.each_line do |line| puts line.chomp.split(/\s+/).map { |word| Cmabrigde.convert(word) }.join(" ") end
#8934
original page : http://ja.doukaku.org/comment/8934/
source.text <- "こんにちは みなさん おげんき ですか? わたしは げんき です。 この ぶんしょう は いぎりす の ケンブリッジ だいがく の けんきゅう の けっか にんげん は もじ を にんしき する とき その さしいょ と さいご の もじさえ あっていれば じゅんばん は めちゃくちゃ でも ちゃんと よめる という けんきゅう に もとづいて わざと もじの じゅんばん を いれかえて あります。 どうです? ちゃんと よめちゃう でしょ? ちゃんと よめたら はんのう よろしく" writeLines(sapply(readLines(textConnection(source.text)), function(x){ paste(sapply(strsplit(x, " ")[[1]], function(word){ lt <- strsplit(word, "")[[1]] len <- length(lt) ifelse(len<=3, word, paste(lt[c(1,sample(len-2)+1,len)], collapse="")) }), collapse=" ")}))