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.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(); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user