πŸ“πŸ“šIntermediate

Check Palindrome Using Pointers

Palindrome with pointers

A palindrome reads the same forwards and backwards. Using two pointers (start and end), we can efficiently check if a string is a palindrome.

πŸ“ Examples

βœ“ "radar"

Is palindrome

βœ— "hello"

Not palindrome

C Program to Check Palindrome Using Pointers

palindrome_pointers.c
C
1#include <stdio.h>
2#include <string.h>
3#include <stdbool.h>
4
5bool isPalindrome(char *str) {
6 char *start = str;
7 char *end = str + strlen(str) - 1;
8
9 while (start < end) {
10 if (*start != *end) {
11 return false;
12 }
13 start++; // Move forward
14 end--; // Move backward
15 }
16 return true;
17}
18
19int main() {
20 char str1[] = "radar";
21 char str2[] = "hello";
22
23 printf("\"%s\" is %s\n", str1,
24 isPalindrome(str1) ? "a palindrome" : "NOT a palindrome");
25 printf("\"%s\" is %s\n", str2,
26 isPalindrome(str2) ? "a palindrome" : "NOT a palindrome");
27
28 return 0;
29}
Output

"radar" is a palindrome

"hello" is NOT a palindrome

πŸ”„ Two-Pointer Technique

Checking "radar":

startβ†’r a d a r←end βœ“ r == r

startβ†’a d a←end βœ“ a == a

startβ†’d←end βœ“ middle reached

Result: Palindrome!

🎯 Key Takeaways

βœ“Two pointers: start and end
βœ“Compare *start with *end
βœ“Move towards center
βœ“Stop when start >= end