Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Please answer the questiong correctly, show approprite code and output of compil

ID: 3867283 • Letter: P

Question

Please answer the questiong correctly, show approprite code and output of compiled code.

Balanced Parentheses [10 marks]

A stack is a data structure where data is accessed using the LIFO (last in first out) principle. In this problem, you will use a stack to check whether a string has balanced parentheses (, ) and brackets {, }, [, ], or not.

A string that has balanced parentheses and brackets will be said to be balanced. Any character that is not one of (, ), [, ], {, or } is not important when deciding if a string is balanced and can be ignored.

We will define balanced as follows. A string str is balanced

if str does not contain a parenthesis or bracket symbol, or

str consists of a balanced string surrounded by opening and closing parentheses or matching brackets. That is, str is (b), {b} or [b], where b is any balanced string, or

if str is the concatenation of any two balanced strings. That is, str is bc, where b and c are any balanced strings.

You will complete the provided Balanced class that has two static methods isBalanced(String) and numberOfBalancedStrings(String[]).

Your isBalanced method must use the java.util.Stack class (in a way that solves the problem) to receive any grades for this problem.

http://docs.oracle.com/javase/8/docs/api/java/util/Stack.html

Examples

The following strings have balanced parentheses

(), ()()

cat, c(at), (hello)(kitty)

if( ((x-y) < 4) || (x > 12))

()(((s)))()()()()(x()((y))(x))()(ccccc(w))ssss()

The following strings do not have balances parentheses

), )(a), )a(

The following strings have balanced parentheses and brackets

a, [], {}, [()], []{}({[{}]}),

for(int i=0; i<12; i+=1){x[i]+=f(1);}

The following strings do not have balanced parentheses and brackets

(], {), [}, [}, (], ({)}h, [(]())

for(int i=0; i<12; i+=1){

Note: You will receive partial marks if you code only works for parentheses (and not brackets).

BALANCED.JAVA

import java.util.Stack; public class Balanced{ /** Checks if a string is balanced or not. @param s is a non-null string @return true of the input <code>s</code> is balanced and false otherwise. **/ public static boolean isBalanced(String s){ return false; } /** Counts the number of balanced strings in the input array. @param in is a non-null array of strings @return the number of strings in the input< code>in</code> that are balanced. **/ public static int numberOfBalancedStrings(String[] in){ return -1; } }

Explanation / Answer

import java.util.Stack;
/**
*
* @author Sam
*/
public class Balanced {

    /**
     * Checks if a string is balanced or not.
     *
     * @param s is a non-null string
     * @return true of the input <code>s</code> is balanced and false otherwise.
   *
     */
    public static boolean isBalanced(String s) {
        Stack<Character> stack = new Stack<>();
        for (int i = 0; i < s.length(); i++)
            if (s.charAt(i) == '(' || s.charAt(i) == '{' || s.charAt(i) == '[')
                stack.push(s.charAt(i));
            else if (s.charAt(i) == ')' ) {
                if (stack.pop() != '(')
                    return false;
            }
            else if (s.charAt(i) == '}') {
                if (stack.pop() != '{')
                    return false;
            }
            else if (s.charAt(i) == ']') {
                if (stack.pop() != '[')
                    return false;
            }
        return stack.isEmpty();
    }

    /**
     * Counts the number of balanced strings in the input array.
     *
     * @param in is a non-null array of strings
     * @return the number of strings in the input< code>in</code> that are
     * balanced.
   *
     */
    public static int numberOfBalancedStrings(String[] in) {
        int count = 0;
        for (String s:in)
            if (isBalanced(s))
                count++;
        return count;
    }

}

This will do your job well :) Let me know if you need any assistance!