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
| package com.demo.s20;
import java.util.Deque; import java.util.HashMap; import java.util.LinkedList; import java.util.Map;
public class Solution { public boolean isValid(String s) { if(s.length() % 2 != 0) { return false; } Map<Character, Character> pairs = new HashMap(); pairs.put('(', ')'); pairs.put('[', ']'); pairs.put('{', '}'); char[] charr =s.toCharArray(); Deque<Character> stack = new LinkedList(); for(int i = 0; i< charr.length ; i++) { if(pairs.containsKey(charr[i])) { stack.push(pairs.get(charr[i])); } else if(stack.size()!=0 && stack.peek() == charr[i]){ stack.pop(); continue; } else { return false; }
} return stack.size() == 0; } }
|