Here is another codility problem solution from the codility lessons (Nesting -Determine whether given string of parentheses is properly nested.) due to the copy rights I can't copy the content of the problem here so to view the problem description click here.
// you can also use imports, for example:
import java.util.*;
// you can use System.out.println for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
public int solution(String S) {
// write your code in Java SE 8
if (S.length() % 2 != 0) return 0;
if (S.length() == 0) return 1;
Stack < Character > st = new Stack < Character > ();
for (int i = 0; i < S.length(); i++) {
if (isOpenTag(S.charAt(i))) {
st.add(S.charAt(i));
} else {
if (!st.empty()) {
char sc = st.pop();
if (getCloseTag(sc) != S.charAt(i)) return 0;
} else {
return 0;
}
}
}
if (!st.empty()) return 0;
return 1;
}
private char getCloseTag(char c) {
switch (c) {
case ('('):
return ')';
default:
return ' ';
}
}
private boolean isOpenTag(char c) {
switch (c) {
case ('('):
return true;
default:
return false;
}
}
}
No comments:
Post a Comment