Rebol3 Code Examplex


Two identical strings

Rebol [
    title: "Rosetta code: Two identical strings"
    file:  %Two_identical_strings.r3
    url:   https://rosettacode.org/wiki/Two_identical_strings
]

for i 0 1000 1 [
    parse bin: enbase i 2 [remove any #"0"]   ;; binary string, strip leading zeros
    if even? len: length? bin [               ;; only even-length binary strings can match
        if find/match bin skip bin len >> 1 [ ;; first half = second half?
            print [pad i 3 ":" bin]
        ]
    ]
]

Output:

3   : 11
10  : 1010
15  : 1111
36  : 100100
45  : 101101
54  : 110110
63  : 111111
136 : 10001000
153 : 10011001
170 : 10101010
187 : 10111011
204 : 11001100
221 : 11011101
238 : 11101110
255 : 11111111
528 : 1000010000
561 : 1000110001
594 : 1001010010
627 : 1001110011
660 : 1010010100
693 : 1010110101
726 : 1011010110
759 : 1011110111
792 : 1100011000
825 : 1100111001
858 : 1101011010
891 : 1101111011
924 : 1110011100
957 : 1110111101
990 : 1111011110