rep-string.sf 498 B

12345678910111213141516171819202122
  1. #!/usr/bin/ruby
  2. #
  3. ## https://rosettacode.org/wiki/Rep-string
  4. #
  5. var array = <1001110011 1110111011
  6. 0010010010 1010101010
  7. 1111111111 0100101101
  8. 0100100 101 11 00 1>;
  9.  
  10. array.each { |n|
  11. if (var m = (n =~ /^(.+)\1+(.*$)(?(?{ substr($1, 0, length $2) eq $2 })|(?!))/)) {
  12. var i = m[0].len;
  13. say (n.substr(0, i),
  14. n.substr(i, i).tr('01', '𝟘𝟙'),
  15. n.substr(i*2));
  16. } else {
  17. say "#{n} (no repeat)";
  18. }
  19. }