fork(1) download
  1. for index in 1..9
  2. input=gets.chomp
  3. braces=(
  4. input.chars
  5. .group_by{|char| char}
  6. .group_by{|char,charArray| charArray.size}
  7. .map{|hashpair|
  8. charCount=hashpair[1].size
  9. hashpair[1][0...charCount - charCount % 2].map{|x| x[0]}.join
  10. }.join
  11. ).chars
  12. .each_slice(2)
  13. .to_a
  14.  
  15. puts braces.size
  16. .downto(1)
  17. .map{|n|
  18. braces.combination(n)
  19. .map{|combo|
  20. [
  21. combo.join,
  22. (
  23. comboHash = Hash[combo]
  24. stack = []
  25. output = 1
  26. input.each_char{|char|
  27. stack.push(char) if comboHash.keys.include? char
  28. (
  29. output = false if stack.empty? || !comboHash[stack.pop].eql?(char)
  30. ) if comboHash.values.include? char
  31. }
  32. output ? stack.empty? : output
  33. )
  34. ]
  35. }
  36. }.find{|x| x[0][1]}
  37. .to_a[0]
  38. .to_a[0]
  39. end
Success #stdin #stdout 0.05s 9744KB
stdin
abcc
fffff
aedbedebdcecdec
abcd
aabbcc
abc
abbac
aabcdb
abcdacbd
stdout
ab


abcd
ab
ab

abcd
ab