Skip to content

Commit 2d4dcc0

Browse files
Merge pull request #371 from tdtrung17693/feature/palindrome-erlang
Create palindrome.erl
2 parents 8d4bd68 + 36acdb4 commit 2d4dcc0

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

String/Palindrome/palindrome.erl

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
-module(palindrome).
2+
-export([palindrome/1]).
3+
4+
palindrome(String) ->
5+
NormalizedString = normalize(String, ""),
6+
palindrome(NormalizedString, lists:reverse(NormalizedString)).
7+
8+
palindrome([], []) -> true;
9+
palindrome([ H | Rest ], [ H | Rest2 ]) -> palindrome(Rest, Rest2);
10+
palindrome(_, _) -> false.
11+
12+
normalize([], Result) -> Result;
13+
normalize([ H | Rest ], Result) when H >= $A, H =< $Z -> normalize(Rest, [ H - $A + $a | Result ]);
14+
normalize([ H | Rest ], Result) when (H < $1 orelse H > $9) andalso
15+
(H < $A orelse H > $Z) andalso
16+
(H < $a orelse H > $z) -> normalize(Rest, Result);
17+
normalize([ H | Rest ], Result) -> normalize(Rest, [ H | Result ]).

0 commit comments

Comments
 (0)