Skip to content

Commit 965dc99

Browse files
Create 3.c
1 parent ea966c7 commit 965dc99

File tree

1 file changed

+83
-0
lines changed

1 file changed

+83
-0
lines changed

3.c

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
#include<stdio.h>
2+
#include<string.h>
3+
#include<stdio.h>
4+
char ip[20],stack[20];
5+
int main()
6+
{
7+
char m[2][3][10]={{"aBa","E","E"},{"n","bB","E"}};
8+
int size[2][3]={3,1,1,1,2,1};
9+
int i,j,row,col,k,n;
10+
printf("\nEnter the input string :");
11+
scanf("%s",ip);
12+
strcat(ip,"$");
13+
n=strlen(ip);
14+
stack[0]='$';
15+
stack[1]='A';
16+
i=1;
17+
j=0;
18+
printf("\nStack\t\tInput\n");
19+
printf("________\t________\n");
20+
while((stack[i]!='$')&&(ip[j]!='$'))
21+
{
22+
if(stack[i]==ip[j])
23+
{
24+
i--;
25+
j++;
26+
continue;
27+
}
28+
switch(stack[i])
29+
{
30+
case 'A':row=0;
31+
break;
32+
case 'B':row=1;
33+
break;
34+
}
35+
switch(ip[j])
36+
{
37+
case 'a':col=0;
38+
break;
39+
case 'b':col=1;
40+
break;
41+
case '$':col=2;
42+
break;
43+
}
44+
if(m[row][col][0]=='E')
45+
{
46+
printf("\nError");
47+
exit(0);
48+
}
49+
else if(m[row][col][0]=='n')
50+
i--;
51+
else if(m[row][col][0]==ip[j])
52+
{
53+
for(k=size[row][col]-1;k>=0;k--)
54+
{
55+
stack[i]=m[row][col][k];
56+
i++;
57+
}
58+
i--;
59+
}
60+
else
61+
{
62+
printf("\nError");
63+
exit(0);
64+
}
65+
for(k=0;k<=i;k++)
66+
printf("%c",stack[k]);
67+
printf("\t\t");
68+
for(k=j;k<=n;k++)
69+
printf("%c",ip[k]);
70+
printf("\n");
71+
}
72+
for(k=0;k<=i;k++)
73+
printf("%c",stack[k]);
74+
printf("\t\t");
75+
for(k=j;k<=n;k++)
76+
printf("%c",ip[k]);
77+
printf("\n");
78+
if((stack[i]=='$')&&(ip[j]=='$'))
79+
printf("\nSuccess\n\n");
80+
else
81+
printf("\nError\n");
82+
return 0;
83+
}

0 commit comments

Comments
 (0)