A directory of Objective Type Questions covering all the Computer Science subjects.
Here you can access and discuss Multiple choice questions and answers for various competitive exams and interviews.
C program to check String is Palindrome or not using Stack/
C program to check String is Palindrome or not using Stack
Problem Description
This is a C Program to identify whether a string is palindrome or not using stack. A palindrome string is a string that reads the same backward as forward. Some palindrome string examples are "C", "CC", "CCC", "madam", "abba", etc.
C program to check String is Palindrome or not using Stack - Source code
/*
C Program to Identify whether a String is Palindrome or not using Stack
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 50
int top = -1, front = 0;
int stack[MAX];
void push(char);
void pop();
void main()
{
int i, c;
char s[MAX], b;
while (1)
{
printf("1-enter string\n2-exit\n");
printf("enter your choice\n");
scanf("%d", &c);
switch (c)
{
case 1:
printf("Enter the String\n");
scanf("%s", s);
for (i = 0;s[i] != '\0';i++)
{
b = s[i];
push(b);
}
for (i = 0;i < (strlen(s) / 2);i++)
{
if (stack[top] == stack[front])
{
pop();
front++;
}
else
{
printf("%s is not a palindrome\n", s);
break;
}
}
if ((strlen(s) / 2) == front)
printf("%s is palindrome\n", s);
front = 0;
top = -1;
break;
case 2:
exit(0);
default:
printf("Please enter correct choice\n");
}
}
}
/* to push a character into stack */
void push(char a)
{
top++;
stack[top] = a;
}
/* to delete an element in stack */
void pop()
{
top--;
}
Program Output
1-enter string
2-exit
enter your choice
1
Enter the String
madam
madam is palindrome
1-enter string
2-exit
enter your choice
1
Enter the String
abbbcbbba
abbbcbbba is palindrome
1-enter string
2-exit
enter your choice
compscibits
Enter the String
compscibits is not a palindrome
1-enter string
2-exit
enter your choice
Program Explanation
1. Take a string as input and store it in the array s[].
2. Load each character of the array s[] into the array stack[] using a for loop.
3. Use variables front and top to represent the last and top element of the array stack[].
4. Using for loop compare the top and last element of the array stack[]. If they are equal, then delete the top element, increment the variable front by 1 and compare again.
5. If they are not equal, then print the output as “It is not a palindrome”.
6. Compare the elements in the steps 4 and 5 upto the middle element of the array stack[].
7. If every characters of the array is equal, then it is a palindrome.