1
2
3
4
5
6
7
8
9
10
11
12
ranges = DATA.read
  .split(?,)
  .map { it.split(?-).map(&:to_i) }
  .map { _1.._2 }

pp ranges.flat_map {|range|
  # part one
  # range.to_a.select { it.to_s =~ /^(.+)\1$/ }
  range.to_a.select { it.to_s =~ /^(.+)\1+$/ }
}.sum

__END__