From ad0a18e8a9a8857baab91e2b2b91946a7154a60f Mon Sep 17 00:00:00 2001 From: Nick Chambers Date: Mon, 17 Jan 2022 11:21:00 -0600 Subject: [PATCH] Allow for palindromes with non-alpha characters --- c/palindrome.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/c/palindrome.c b/c/palindrome.c index 36b55f7..3c214e6 100644 --- a/c/palindrome.c +++ b/c/palindrome.c @@ -1,8 +1,18 @@ -int palindrome(const char *str, unsigned len) { - unsigned idx = 0; +#include - for(; idx < (len - (len % 2)) / 2; idx += 1) { - if(str[idx] != str[len - idx - 1]) { +int palindrome(const char *str, unsigned len) { + const char *start = str; + const char *end = str + len - 1; + + while(start < end) { + if(!isalpha(*start)) { + start += 1; + } else if(!isalpha(*end)) { + end -= 1; + } else if(tolower(*start) == tolower(*end)) { + start += 1; + end -= 1; + } else { return 0; } }