#include<stdio.h>
#include<string.h>
#define size 100
struct stack
{
char items[size];
int top;
}s;
char pop();
void push(char);
void display();
int isfull();
int isempty();
int main()
{
int i=1,c=0;
char ss[100],x;
printf("1.reverse line of text 2.palindrome check\n"); printf("enter any other key to quit\n");
while(i!=0)
{
switch(i)
{
case 1:printf("enter string to reverse "); c=0;
{
push(ss[i]);
}
for(i=s.top;i>=0;i--)
{
ss[c++]=s.items[i];
pop();
}
ss[c]='\0';
printf("\nreversed string is %s\n",ss
); break;
case 2: printf("enter string to be checked for palindrome\n"); {
push(ss[i]);
}
{
if(ss[i]==s.items[s.top])
{
x=pop();
}
else break;
}
else printf("not palindrome\n"); break;
default:i=0;
}
}
}
int isfull()
{
return s.top==size-1;
}
int isempty()
{
return s.top==-1;
}
char pop()
{
char x;
if(isempty
())printf("cant pop as stack empty\n"); else
{
x=s.items[s.top];
s.top--;
return x;
}
}
void push(char x)
{
if(isfull
())printf("cant push as stack full\n"); else
{
s.items[++s.top]=x;
}
}
void display()
{
int i;
if(isempty
())printf("cant display as stack empty\n"); else
{
for(i=s.top;i>=0;i--)
{
}
}
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RyaW5nLmg+CiNkZWZpbmUgc2l6ZSAxMDAKc3RydWN0IHN0YWNrCnsKICAgIGNoYXIgaXRlbXNbc2l6ZV07CiAgICBpbnQgdG9wOwoKfXM7CmNoYXIgcG9wKCk7CnZvaWQgcHVzaChjaGFyKTsKdm9pZCBkaXNwbGF5KCk7CmludCBpc2Z1bGwoKTsKaW50IGlzZW1wdHkoKTsKaW50IG1haW4oKQp7CiAgICBpbnQgaT0xLGM9MDsKICAgIGNoYXIgc3NbMTAwXSx4OwogICAgcHJpbnRmKCIxLnJldmVyc2UgbGluZSBvZiB0ZXh0IDIucGFsaW5kcm9tZSBjaGVja1xuIik7CiAgICBwcmludGYoImVudGVyIGFueSBvdGhlciBrZXkgdG8gcXVpdFxuIik7CgoKCiAgd2hpbGUoaSE9MCkKICAgewogICAgICAgcHJpbnRmKCJlbnRlciBjaG9pY2UgIik7CiAgICAgICBzY2FuZigiJWQiLCZpKTsKCiAgICAgc3dpdGNoKGkpCiAgICAgewogICAgICAgICBjYXNlIDE6cHJpbnRmKCJlbnRlciBzdHJpbmcgdG8gcmV2ZXJzZSAiKTsKICAgICAgICAgICAgICAgIHNjYW5mKCIlW15cbl1zIixzcyk7CiAgICAgICAgICAgICAgIGM9MDsKICAgICAgICAgZm9yKGk9MDtpPHN0cmxlbihzcyk7aSsrKQogICAgICAgICB7CiAgICAgICAgICAgICBwdXNoKHNzW2ldKTsKCiAgICAgICAgIH0KICAgICAgICAgZm9yKGk9cy50b3A7aT49MDtpLS0pCiAgICAgICAgIHsKCiAgICAgICAgICAgICBzc1tjKytdPXMuaXRlbXNbaV07CiAgICAgICAgICAgICBwb3AoKTsKICAgICAgICAgfQogICAgICAgICBzc1tjXT0nXDAnOwogICAgICAgICBwcmludGYoIlxucmV2ZXJzZWQgc3RyaW5nIGlzICVzXG4iLHNzKTsKICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgMjogcHJpbnRmKCJlbnRlciBzdHJpbmcgdG8gYmUgY2hlY2tlZCBmb3IgcGFsaW5kcm9tZVxuIik7CiAgICAgICAgICAgICAgICAgc2NhbmYoIiVbXlxuXXMiLHNzKTsKICAgICAgICAgICAgICAgICBpZihzdHJsZW4oc3MpJTI9PTApYz1zdHJsZW4oc3MpLzI7CiAgICAgICAgICAgICAgICAgZWxzZSBjPXN0cmxlbihzcykvMisxOwogICAgICAgICAgICAgICAgIGZvcihpPTA7aTxzdHJsZW4oc3MpLzI7aSsrKQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgcHVzaChzc1tpXSk7CgogICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgZm9yKGk9YztpPHN0cmxlbihzcyk7aSsrKQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgaWYoc3NbaV09PXMuaXRlbXNbcy50b3BdKQogICAgICAgICAgICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgICAgICAgICAgeD1wb3AoKTsKCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGVsc2UgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICBpZihpPT1zdHJsZW4oc3MpKXByaW50ZigicGFsaW5kcm9tZVxuIik7CiAgICAgICAgICAgICAgICAgZWxzZSBwcmludGYoIm5vdCBwYWxpbmRyb21lXG4iKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBkZWZhdWx0Omk9MDsKCiAgICAgfQogICB9Cgp9CmludCBpc2Z1bGwoKQp7CgogICAgcmV0dXJuIHMudG9wPT1zaXplLTE7Cn0KaW50IGlzZW1wdHkoKQp7CgogICAgcmV0dXJuIHMudG9wPT0tMTsKfQpjaGFyIHBvcCgpCnsKICAgIGNoYXIgeDsKICAgIGlmKGlzZW1wdHkoKSlwcmludGYoImNhbnQgcG9wIGFzIHN0YWNrIGVtcHR5XG4iKTsKICAgIGVsc2UKICAgIHsKICAgICAgICB4PXMuaXRlbXNbcy50b3BdOwogICAgICAgIHMudG9wLS07CiAgICAgICAgcmV0dXJuIHg7CiAgICB9Cgp9CnZvaWQgcHVzaChjaGFyIHgpCnsKICAgIGlmKGlzZnVsbCgpKXByaW50ZigiY2FudCBwdXNoIGFzIHN0YWNrIGZ1bGxcbiIpOwogICAgZWxzZQogICAgewogICAgICAgIHMuaXRlbXNbKytzLnRvcF09eDsKCgogICAgfQoKfQogICAgdm9pZCBkaXNwbGF5KCkKICAgIHsKICAgICAgICBpbnQgaTsKICAgICAgICBpZihpc2VtcHR5KCkpcHJpbnRmKCJjYW50IGRpc3BsYXkgYXMgc3RhY2sgZW1wdHlcbiIpOwogICAgICAgIGVsc2UKICAgICAgICB7CgogICAgICAgICAgICBmb3IoaT1zLnRvcDtpPj0wO2ktLSkKICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgIHByaW50ZigiJWMgIixzLml0ZW1zW2ldKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICB9Cg==