forked from code-clash/is-string-well-formed
		
	Compare commits
	
		
			1 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 048f165373 | 
| @@ -1,6 +1,4 @@ | ||||
| import java.util.*; | ||||
| import java.io.*; | ||||
| import java.math.*; | ||||
|  | ||||
| /** | ||||
|  * Template code to help you parse the standard input  | ||||
| @@ -11,10 +9,34 @@ class Solution { | ||||
| 	public static void main( String[] args ) { | ||||
| 		Scanner in = new Scanner( System.in ); | ||||
| 		// read values with in.next...() methods | ||||
| 		 | ||||
| 		String input = in.nextLine(); | ||||
| 		// code your solution here | ||||
| 		 | ||||
| 		boolean output = isInputWellFormed(input); | ||||
| 		// 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(); | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user