Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % palindrome (strict palindrome)
- palindrome(X) ->
- palindrome(X, lists:reverse(X), length(X) div 2).
- palindrome([X|X1s], [X|X2s], Remaining) ->
- if Remaining == 0 ->
- true;
- true ->
- palindrome(X1s, X2s, Remaining-1)
- end;
- palindrome([_X|_X1s], [_Y|_X2s], _Remaining) ->
- false.
- % palindrome (relaxed palindrome, only considers letters)
- relaxed_palindrome(X) ->
- CleanedX = only_letters(X),
- palindrome(CleanedX).
- only_letters(X) ->
- only_letters(X, []).
- only_letters([], Acc) -> Acc;
- only_letters([X|Xs], Acc) ->
- case re:run([X], "^[A-Za-z]$") of
- {match, _} -> only_letters(Xs, Acc ++ string:lowercase([X]));
- nomatch -> only_letters(Xs, Acc)
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement