In this problem we have to find whether the input string is valid sequence of parenhesis or not!
We just put our string like this:-
{}()
({()})
{}(
[]
And according to our input this program will give "true" if the sequence is valid otherwise "false".
import java.util.*;
class Solution{
public static void
main(String []argh)
{
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
String input=sc.next();
//Complete the code
}
System.out.println(isValid(input));
}
}
public static boolean
isValid(String s){
if(s.charAt(0)==')'||s.charAt(0)=='}'||s.charAt(0)==']'){
return false;
}
Stack<Character> stack=new Stack<>();
for(int i=0;i<s.length();i++)
{if(s.charAt(i)=='{'||s.charAt(i)=='('||s.charAt(i)=='[')
{
stack.push(s.charAt(i));
}
else{
if(stack.empty()){
return false;
}
char open=findOpenBracket(s.charAt(i));
char ch=stack.pop();
if(ch!=open) {
return false;
}
}
}
if(stack.empty()){
return true;
}
return false;
}
public static char findOpenBracket(char c)
{
if(c=='}')
{
return '{';
}
else if(c==')'){
return '(';
}
else if(c==']'){
return '[';
}
return ' ';
}
}
If any doubt feel free to ask in comment:)
This problem is taken from the HackerRank !!
Happy Coding❤️
Top comments (0)