Task description
A string S consisting of N characters is called properly nested if:
For example, string "(()(())())" is properly nested but string "())" isn't. Write a function: that, given a string S consisting of N characters, returns 1 if string 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: Complexity:
class Solution { public int solution(String S) { // write your code in Java SE 8 // write your code in Java SE 8 char[] chrArray=S.toCharArray(); int len=chrArray.length; int closeParan=0; int openParan=0; int retV=0; int pos=0; for(int i=len-1;i>=0;i--){ if(chrArray[i]==')'){ closeParan++; pos=i; }else if(chrArray[i]=='(' && i<pos){ openParan++; } if(closeParan==openParan){ closeParan=openParan=0; } } if(closeParan==openParan) retV=1; return retV; } } 75% 75 out of 100 points
Analysis summary
The following issues have been detected: wrong answers.
For example, for the input '())(()' the solution returned a wrong answer (got 1 expected 0). |
Write a function that provides change directory (cd) function for an abstract file system. Notes: Root path is '/'. Path separator is '/'. Parent directory is addressable as "..". Directory names consist only of English alphabet letters (A-Z and a-z). For example, new Path("/a/b/c/d").cd("../x").getPath() should return "/a/b/c/x". Note: The evaluation environment uses '\' as the path separator. public class Path { private String path; public Path(String path) { this.path = path; } public String getPath() { return path; } public Path cd(String newPath) { //throw new UnsupportedOperationException("Waiting to be implemented."); String[] newP=newPath.split("/"); String[] oldP=path.split("/"); int lnCount=0; for(String str:newP){ if(st...
// you can also use imports, for example:
ReplyDeleteimport java.util.*;
// you can write to stdout 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
char[] ch=S.toCharArray();
if(ch.length % 2 ==1 )
return 0;
Stack op = new Stack<>();
for(char c :ch ){
if(c == '(')
{
op.push(c);
}
if(c == ')' && !op.isEmpty())
{
op.pop();
}
}
return op.isEmpty()?1:0;
}
}