mamamoto #3508(2007/10/24 03:46 GMT) [ Ruby ] Rating0/0=0.00
全般に無難なコードとおもいますが stk.popのところはちょっと感じ悪いかも。 つーかelsifでいろいろやりすぎ感がいやなのかなあ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
K = [['(', ')'], ['[', ']'], ['{', '}']] OPN, CLS = K.transpose def reverseString2(org) str = org.split(//) stk = [] str.each_with_index{|c, i| if ki = OPN.index(c) stk.push([i, ki]) elsif ki = CLS.index(c) and (j, kj = stk.pop) and ki == kj str[j] = CLS[ki] str[i] = OPN[kj] end } str.reverse.join end if __FILE__ == $0 def test(a,b) p a, reverseString2(a), b, reverseString2(a) == b end test("文字列(もじれつ)の反転(はんてん)", "(んてんは)転反の(つれじも)列字文") test("対応[の{とれている(さまざまな)括弧}の(例)]です。", "。すで[(例)の{弧括(なまざまさ)るいてれと}の]応対") test("これ(は(対応のとれていない)括弧がある例です。", "。すで例るあが弧括(いないてれとの応対)は(れこ") test("これ(も{対応の)とれていない}括弧の例です。", "。すで例の弧括}いないてれと)の応対{も(れこ") end
Rating0/0=0.00-0+
[ reply ]
mamamoto
#3508()
[
Ruby
]
Rating0/0=0.00
Rating0/0=0.00-0+
[ reply ]