https://www.hackerrank.com/challenges/balanced-brackets/problem
Solution (Java)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | import java.io.*; import java.math.*; import java.security.*; import java.text.*; import java.util.*; import java.util.concurrent.*; import java.util.regex.*; public class Solution { // Complete the isBalanced function below. static String isBalanced(String s) { Stack<Character> st = new Stack(); for ( int i= 0 ; i<s.length(); i++) { char c = s.charAt(i); if (c == '{' || c == '[' || c == '(' ) { st.push(c); } else { if (c == '}' ) { if (st.isEmpty() || st.pop() != '{' ) { return "NO" ; } } else if (c == ']' ) { if (st.isEmpty() || st.pop() != '[' ) { return "NO" ; } } else if (c == ')' ) { if (st.isEmpty() || st.pop() != '(' ) { return "NO" ; } } } } if (st.isEmpty()) { return "YES" ; } else { return "NO" ; } } private static final Scanner scanner = new Scanner(System.in); public static void main(String[] args) throws IOException { BufferedWriter bufferedWriter = new BufferedWriter( new FileWriter(System.getenv( "OUTPUT_PATH" ))); int t = scanner.nextInt(); scanner.skip( "(\r\n|[\n\r\u2028\u2029\u0085])?" ); for ( int tItr = 0 ; tItr < t; tItr++) { String s = scanner.nextLine(); String result = isBalanced(s); bufferedWriter.write(result); bufferedWriter.newLine(); } bufferedWriter.close(); scanner.close(); } } |