Data Structure Lab :
Practical C25 :
A palindrome is a string of character that‘s the same forward and backward. Typically,
punctuation, capitalization, and spaces are ignored. For example, “Poor Dan is in a
droop” is a palindrome, as can be seen by examining the characters “poordanisinadroop” and observing that they are the same forward and backward. One way to check
for a palindrome is to reverse the characters in the string and then compare with them
the original-in a palindrome, the sequence will be identical. Write C++ program with
functions
a) To print original string followed by reversed string using stack
b) To check whether given string is palindrome or not
//Author : SPPU CSE GURU
#include<iostream>
#include<string>
using namespace std;
class Palindrome{
public:
int top,max,length;
char arr[100];
string data;
char Pull();
Palindrome()
{
top=-1;
max=99;
}
void Push();
void Clean();
void display();
void reverse();
void CheckPalindrome();
};
void Palindrome::Push(){
if(top<=max)
{
cout<<"Enter String : "<<endl;
getline(cin,data);
length=data.size();
for(int i=0;i<length;i++){
top++;
arr[top]=data[i];
}
}
else
{
cout<<"Stack Overflow"<<endl;
}
}
void Palindrome::Clean(){
int i=0,j=0;
while(arr[i]){
if(arr[i]==' '){
length--;
}
else{
arr[j++]=tolower(arr[i]);
}
i++;
}
top=j-1;
}
char Palindrome::Pull() {
if(top==-1)
cout<<"Stack Underflow"<<endl;
else {
return(arr[top--]);
}
}
void Palindrome::display()
{
if (top==-1)
{
cout<<"Stack is empty"<<endl;
}
else
{
cout<<"Your Original String is :"<<endl;
for(int i=0;i<length;i++)
{
cout<<arr[i];
}
}
cout<<"\n";
}
void Palindrome::reverse()
{
if (top==-1)
{
cout<<"Stack is empty"<<endl;
}
else
{
cout<<"Reversed String is :"<<endl;
for(int i=top;i>=0;i--)
{
cout<<arr[i];
}
}
cout<<"\n";
}
void Palindrome::CheckPalindrome()
{
int flag=0;
if (top==-1)
{
cout<<"Stack is empty"<<endl;
}
else
{
for(int i=0;i<length;i++)
{
if (arr[i]!=Pull())
{
flag=1;
}
}
if (flag==0)
{
cout<<"String is palindrome"<<endl;
}
else
{
cout<<"String is not palindrome"<<endl;
}
}
}
int main()
{
Palindrome obj;
obj.Push();
obj.Clean();
obj.display();
obj.reverse();
obj.CheckPalindrome();
return 0;
}
why it is showing wrong ans ?
ReplyDelete