Brackets Problem(Determine whether a given string of parentheses is properly nested)


Problem:

A string S consisting of N characters is considered to be properly nested if any of the following conditions is true:
S is empty;
S has the form “(U)” or “[U]” or “{U}” where U is a properly nested string;
S has the form “VW” where V and W are properly nested strings.
For example, the string “{[()()]}” is properly nested but “([)()]” is not.
Write a function:
int solution(char *S);
that, given a string S consisting of N characters, returns 1 if S is properly nested and 0 otherwise.
For example, given S = “{[()()]}”, the function should return 1 and given S = “([)()]”, the function should return 0, as explained above.
Assume that:
N is an integer within the range [0..200,000];
string S consists only of the following characters: “(“, “{“, “[“, “]”, “}” and/or “)”.
Complexity:
expected worst-case time complexity is O(N);
expected worst-case space complexity is O(N) (not counting the storage required for input arguments).

Solution of the Problem:

	private int characterSymmatry(String str){
		Stack<Character> stack = new Stack<Character>();
		
		for (int i = 0; i < str.length(); i++) {
			char characters = str.charAt(i);
			switch (characters) {
			case '{':
				stack.push(characters);
				break;
			case '[':
				stack.push(characters);
				break;

			case '(':
				stack.push(characters);
				break;

			case ')':
				if(!stack.isEmpty()){
					char c= stack.pop();
					if(c!='('){
						return 0;
					}
				}
				
				break;
			case ']':
				if(!stack.isEmpty()){
					char c2 = stack.pop();
					if(c2!='['){
						return 0;
					}
				}
				break;
			case '}':
				if(!stack.isEmpty()){
					char c3 = stack.pop();
					if(c3!='{'){
						return 0;
					}
				}
				break;
				
			default:
				break;
			}
		}
		
		if(stack.isEmpty()){
			return 1;
		}
		
		return 0;
	}

2 thoughts on “Brackets Problem(Determine whether a given string of parentheses is properly nested)

  1. Alene

    There is certainly a lot to know about this subject. I like all of the points you’ve made.

Comments are closed.