1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | <?php $palindrome = '/(?x) ^ (?: (.) (?= .* ( \1 (?(2) \2 | ) ) $ ) )* .? \2? $ /'; $tests = array( '', 'a', 'aa', 'aaa', 'aba', 'aaaa', 'abba', 'aaaaa', 'abcba', 'ababa', 'aab', 'abab', 'xyz', ); foreach ($tests as $test) { echo sprintf("%s '%s'\n", preg_match($palindrome, $test), $test); } # ------------ extra snippet for the recursive pattern in man page $man_palindrome = '/^(?:((.)(?1)\2|)|((.)(?3)\4|.))$/'; echo "man page recursive palindrome test result:\n"; foreach ($tests as $test) { echo sprintf("%s '%s'\n", preg_match($man_palindrome, $test), $test); } ?> |
PD9waHAKCiRwYWxpbmRyb21lID0gJy8oP3gpCl4KICAoPzoKICAgICAgKC4pICg/PQogICAgICAgICAgICAgIC4qCiAgICAgICAgICAgICAgKAogICAgICAgICAgICAgICAgXDEKICAgICAgICAgICAgICAgICg/KDIpIFwyIHwgKQogICAgICAgICAgICAgICkKICAgICAgICAgICAgICAkCiAgICAgICAgICApCiAgKSoKICAuPwogIFwyPwokCgovJzsKCiR0ZXN0cyA9IGFycmF5KAogICcnLAogICdhJywKICAnYWEnLAogICdhYWEnLAogICdhYmEnLAogICdhYWFhJywKICAnYWJiYScsCiAgJ2FhYWFhJywKICAnYWJjYmEnLAogICdhYmFiYScsCiAgJ2FhYicsCiAgJ2FiYWInLAogICd4eXonLAopOwoKZm9yZWFjaCAoJHRlc3RzIGFzICR0ZXN0KSB7CiAgZWNobyBzcHJpbnRmKCIlcyAnJXMnXG4iLCBwcmVnX21hdGNoKCRwYWxpbmRyb21lLCAkdGVzdCksICR0ZXN0KTsgIAp9CgojIC0tLS0tLS0tLS0tLSBleHRyYSBzbmlwcGV0IGZvciB0aGUgcmVjdXJzaXZlIHBhdHRlcm4gaW4gbWFuIHBhZ2UKCiRtYW5fcGFsaW5kcm9tZSA9ICcvXig/OigoLikoPzEpXDJ8KXwoKC4pKD8zKVw0fC4pKSQvJzsKCmVjaG8gIm1hbiBwYWdlIHJlY3Vyc2l2ZSBwYWxpbmRyb21lIHRlc3QgcmVzdWx0OlxuIjsKZm9yZWFjaCAoJHRlc3RzIGFzICR0ZXN0KSB7CiAgZWNobyBzcHJpbnRmKCIlcyAnJXMnXG4iLCBwcmVnX21hdGNoKCRtYW5fcGFsaW5kcm9tZSwgJHRlc3QpLCAkdGVzdCk7ICAKfQoKPz4=
-
upload with new input
-
result: Success time: 0s memory: 13112 kB returned value: 0
1 '' 1 'a' 1 'aa' 1 'aaa' 1 'aba' 1 'aaaa' 1 'abba' 1 'aaaaa' 1 'abcba' 1 'ababa' 0 'aab' 0 'abab' 0 'xyz' man page recursive palindrome test result: 1 '' 1 'a' 1 'aa' 1 'aaa' 1 'aba' 0 'aaaa' 1 'abba' 0 'aaaaa' 1 'abcba' 0 'ababa' 0 'aab' 0 'abab' 0 'xyz'


