プログラミングのお題スレ Part3
■ このスレッドは過去ログ倉庫に格納されています
0030デフォルトの名無しさん
2014/01/27(月) 18:25:37.70require 'enumerator'
def f23(a)
s = a.enum_cons(2).inject([]) {|cs, (x, y)|cs << (x == y ? '=' : x < y ? '<' : '>')}.to_s
pairs = [[/^[=]*$/, 'EQ'], [/^[<=]+$/, 'AS'], [/^[>=]+$/, 'DES'], [//, nil]]
pairs.find() {|(re, tag)| re =~ s}.last || 1 + [s.index('<'), s.index('>')].max
end
p f23([6,6,3,2,6,4,7,4,7,4])
p f23([2,3,4,4,4,6,6,6,7,7])
p f23([7,7,6,6,6,4,4,4,3,2])
p f23([1,1,1,1,1,1,1,1,1,1])
p f23([])
p f23([1])
>>24 ruby 1.8.6
def f24(a)
a.inject([[]]) {|xss, x|
!xss.last.last || xss.last.last <= x ? xss.last << x : xss << [x]
xss
}
end
p f24([8,3,4,9,9,10,6,1,4,3])
p f24([1,3,3,4,4,6,8,9,9,10])
p f24([10,9,9,8,6,4,4,3,3,1])
p f24([1,1,1,1,1,1,1,1,1,1])
■ このスレッドは過去ログ倉庫に格納されています