Palindrome detection: Difference between revisions

Content added Content deleted
(→‎{{header|ed}}: Minor grammatical fix)
(→‎{{header|ed}}: More reliable and even-length-friendly palindrome detection.)
 
Line 1,920: Line 1,920:
H
H
,p
,p
g/^(.)(.+)\1$/s//\2/
g/^(.)(.*)\1$/s//\2/
g/^(.)(.+)\1$/s//\2/
g/^(.)(.*)\1$/s//\2/
g/^(.)(.+)\1$/s//\2/
g/^(.)(.*)\1$/s//\2/
g/^(.)(.+)\1$/s//\2/
g/^(.)(.*)\1$/s//\2/
g/^(.)(.+)\1$/s//\2/
g/^(.)(.*)\1$/s//\2/
g/^(.)(.+)\1$/s//\2/
g/^(.)(.*)\1$/s//\2/
g/^(.)(.+)\1$/s//\2/
g/^(.)(.*)\1$/s//\2/
g/^(.)(.+)\1$/s//\2/
g/^(.)(.*)\1$/s//\2/
g/^(.)(.+)\1$/s//\2/
g/^(.)(.*)\1$/s//\2/
g/^(.)(.+)\1$/s//\2/
g/^(.)(.*)\1$/s//\2/
g/^(.)(.+)\1$/s//\2/
g/^(.)(.*)\1$/s//\2/
g/^(.)(.+)\1$/s//\2/
g/^(.)(.*)\1$/s//\2/
g/^(.)(.+)\1$/s//\2/
v/^(.)(.+)\1$|^.?$/s/.*/Not a palindrome!/
g/^(.)(.+)\1$/s//\2/
g/^.?$/s//Palindrome!/
g/^(.)(.+)\1$/s//\2/
v/^(.)(.+)\1$|^.$/s/.*/Not a palindrome!/
g/^.$/s//Palindrome!/
,p
,p
Q
Q
Line 1,944: Line 1,941:


<pre>$ cat palindrome.ed | ed -lEGs palindrome.input
<pre>$ cat palindrome.ed | ed -lEGs palindrome.input
Newline appended
rotor
rotor
racecar
racecar
level
level
rosetta
rosetta
oppo
Palindrome!
Palindrome!
Palindrome!
Palindrome!
Palindrome!
Palindrome!
Not a palindrome!</pre>
Not a palindrome!
Palindrome!</pre>


=={{header|Eiffel}}==
=={{header|Eiffel}}==