Push Down Automata program in java for Equal no of a’s and b’s

import java.io.*;
class Pda {
    static char st[] = new char[20];
    static int ptr = 0;

    static void push(char e) {
        st[ptr] = e;
        ptr++;
    }

    static void pop() {
        ptr--;
    }


    public static void main(String Args[]) throws IOException {
        BufferedReader obj = new BufferedReader(new InputStreamReader(System.in));
        String ip;
        System.out.println("Enter String:");
        ip = obj.readLine();
        int l;
        boolean f = false;
        int i;
        for (i = 0; i < ip.length(); i++) {
            if (ip.charAt(i) == 'a') {
                push('a');
            } else {
                break;
            }
        }
        for (; i < ip.length(); i++) {
            if (ip.charAt(i) == 'a') {
                f = false;
                break;
            } else {
                pop();
            }
        }
        if (ptr == 0) {
            f = true;
        }
        if (f == true) {
            System.out.println("String Accepted");
        } else {
            System.out.println("String rejected");
        }
    }
}

/* OUTPUT

Enter String:
aaabbb
String Accepted

Enter String:
aaabb
String rejected

*/

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.