Uber Interview Question
Senior Software Development EngineersCountry: India
Interview Type: Phone Interview
#include<bits/stdc++.h>
using namespace std;
typedef long long int int64;
void paren(int64 n, int64 m , string s){
if(m==0) {
cout<<s<<endl;
return ;
}
if(n>0) {
s.append("{");
paren( n -1 , m , s );
s.pop_back();
}
if(n<m){
s.append("}");
paren( n , m - 1 , s );
s.pop_back();
}
}
int main(){
int64 n;
cin>>n;
paren( n , n , "");
}
public class Parenthesis {
static void pp(int lL, int rL, int pos, char[] str){
if(lL < 0 || lL > rL)
return;
if((lL==rL && rL==0)){
System.out.println(str);
return;
}
if(pos >= str.length)
return;
str[pos] = '(';
pp(lL-1, rL, pos+1, str);
str[pos] = ')';
pp(lL, rL-1, pos+1, str);
}
public static void main(String[] args) {
int n = 9;
int pairs = n/2;
char[] str = new char[pairs*2];
pp(pairs, pairs, 0, str);
}
}
public static List<String> getAllParanthesis(int left, int right) {
List<String> result = new ArrayList<>();
int pp = Math.min(left, right);
helper(0, 0, pp, pp, new StringBuilder(), result);
return result;
}
public static void helper(int lc, int rc, int lrem, int rrem, StringBuilder sb, List<String> list) {
if (lrem == 0 && rrem == 0) {
list.add(sb.toString());
return;
}
if (lrem > 0) {
sb.append('(');
helper(lc + 1, rc, lrem - 1, rrem, sb, list);
sb.deleteCharAt(sb.length() - 1);
}
if (rrem > 0 && lc > rc) {
sb.append(')');
helper(lc, rc + 1, lrem, rrem - 1, sb, list);
sb.deleteCharAt(sb.length() - 1);
}
}
- Makarand August 20, 2017