my solution

Rohweini 5 years ago
parent 16ee5b632a
commit 048f165373

@ -1,6 +1,4 @@
import java.util.*; import java.util.*;
import java.io.*;
import java.math.*;
/** /**
* Template code to help you parse the standard input * Template code to help you parse the standard input
@ -11,10 +9,34 @@ class Solution {
public static void main( String[] args ) { public static void main( String[] args ) {
Scanner in = new Scanner( System.in ); Scanner in = new Scanner( System.in );
// read values with in.next...() methods // read values with in.next...() methods
String input = in.nextLine();
// code your solution here // code your solution here
boolean output = isInputWellFormed(input);
// Write result with System.out.println() // Write result with System.out.println()
System.out.println( "value" ); System.out.println( output );
}
private static boolean isInputWellFormed(String input) {
HashMap<Character, Character> validPairs = new HashMap<>();
validPairs.put('{', '}');
validPairs.put('(', ')');
validPairs.put('[', ']');
Deque<Character> unmatchedChars = new ArrayDeque<>();
for (int i = 0; i < input.length(); i++) {
char currentChar = input.charAt(i);
if (validPairs.keySet().contains(currentChar)) {
unmatchedChars.push(currentChar); // Add only opening ({[ to the unmatchedChars.
} else if (validPairs.values().contains(currentChar)) {
if (!unmatchedChars.isEmpty() && validPairs.get(unmatchedChars.peekFirst()) == currentChar) {
unmatchedChars.pop(); // Match found, empty the unmatchedChars.
} else {
return false;
}
}
}
return unmatchedChars.isEmpty();
} }
} }

Loading…
Cancel
Save