Wipro Technologies Interview Question
Senior Software Development EngineersCountry: India
Interview Type: Written Test
vector<string> vec; //stores all perfect 89 string
void calc(string s,int num8,int num9) {
if(num8==0 && num9==0) {
vec.push_back(s);
return;
}
if(num8>num9)
return;
if(num8<0 || num9<=0)
return;
calc(s+'8',num8-1,num9);
calc(s+'9',num8,num9-1);
}
int main()
{
calc("",4,4); //Intial string, count of 8, count of 9
for(int i=0;i<vec.size();i++)
cout<<vec[i]<<endl;
}
vector<string> vec; //stores all perfect 89 string
void calc(string s,int num8,int num9) {
if(num8==0 && num9==0) {
vec.push_back(s);
return;
}
if(num8>num9)
return;
if(num8<0 || num9<=0)
return;
calc(s+'8',num8-1,num9);
calc(s+'9',num8,num9-1);
}
int main()
{
calc("",4,4); //Intial string, count of 8, count of 9
for(int i=0;i<vec.size();i++)
cout<<vec[i]<<endl;
}
IReadOnlyCollection<string> FindCombinations(int n)
{
if(n%2 != 0)
{
return new string[0];
}
return FindCombinations(n / 2, n / 2);
}
IReadOnlyCollection<string> FindCombinations(int openLeft, int closeLeft)
{
if (closeLeft == 0)
return new string[] { string.Empty };
List<string> results = new List<string>();
if(closeLeft > openLeft)
{
IReadOnlyCollection<string> temp = FindCombinations(openLeft, closeLeft - 1);
foreach (string s in temp)
results.Add("9" + s);
}
if(openLeft > 0)
{
IReadOnlyCollection<string> temp = FindCombinations(openLeft-1, closeLeft);
foreach (string s in temp)
results.Add("8" + s);
}
return results;
}
vector<string> vec; //stores all possible strings
void calc(string s,int num8,int num9) {
if(num8==0 && num9==0) {
vec.push_back(s);
return;
}
if(num8>num9)
return;
if(num8<0 || num9<=0)
return;
calc(s+'8',num8-1,num9);
calc(s+'9',num8,num9-1);
}
int main()
{
calc("",4,4); //Intial string, number of 8, number of 9
}
vector<string> vec; //stores all perfect 89 string
void calc(string s,int num8,int num9) {
if(num8==0 && num9==0) {
vec.push_back(s);
return;
}
if(num8>num9)
return;
if(num8<0 || num9<=0)
return;
calc(s+'8',num8-1,num9);
calc(s+'9',num8,num9-1);
}
int main()
{
calc("",4,4); //Intial string, count of 8, count of 9
for(int i=0;i<vec.size();i++)
cout<<vec[i]<<endl;
}
public static ArrayList<String> perfect89(ArrayList<String> list, int num_8, int num_9)
{
if (num_8 == 0 && num_9 == 0)
{
return list;
}
if (list.isEmpty())
{
list.add("8");
perfect89(list, num_8 - 1, num_9);
}
else if (num_8 >= num_9)
{
ArrayList<String> templist = new ArrayList<String>();
list.forEach(v -> templist.add(v + '8'));
list.clear();
list.addAll(templist);
perfect89(list, num_8 - 1, num_9);
}
else if (num_8 == 0)
{
ArrayList<String> templist = new ArrayList<String>();
list.forEach(v -> templist.add(v + '9'));
list.clear();
list.addAll(templist);
perfect89(list, num_8, num_9 - 1);
}
else
{
ArrayList<String> templist1 = new ArrayList<String>();
list.forEach(v -> templist1.add(v + '8'));
perfect89(templist1, num_8 - 1, num_9);
ArrayList<String> templist2 = new ArrayList<String>();
list.forEach(v -> templist2.add(v + '9'));
perfect89(templist2, num_8, num_9 - 1);
list.clear();
list.addAll(templist1);
list.addAll(templist2);
}
return list;
}
public static ArrayList<String> perfect89(ArrayList<String> list, int num_8, int num_9)
{
if (num_8 == 0 && num_9 == 0)
{
return list;
}
if (list.isEmpty())
{
list.add("8");
perfect89(list, num_8 - 1, num_9);
}
else if (num_8 >= num_9)
{
ArrayList<String> templist = new ArrayList<String>();
list.forEach(v -> templist.add(v + '8'));
list.clear();
list.addAll(templist);
perfect89(list, num_8 - 1, num_9);
}
else if (num_8 == 0)
{
ArrayList<String> templist = new ArrayList<String>();
list.forEach(v -> templist.add(v + '9'));
list.clear();
list.addAll(templist);
perfect89(list, num_8, num_9 - 1);
}
else
{
ArrayList<String> templist1 = new ArrayList<String>();
list.forEach(v -> templist1.add(v + '8'));
perfect89(templist1, num_8 - 1, num_9);
ArrayList<String> templist2 = new ArrayList<String>();
list.forEach(v -> templist2.add(v + '9'));
perfect89(templist2, num_8, num_9 - 1);
list.clear();
list.addAll(templist1);
list.addAll(templist2);
}
return list;
}
vector<string> vec; //stores all perfect 89 string
- C++ solution January 12, 2021void calc(string s,int num8,int num9) {
if(num8==0 && num9==0) {
vec.push_back(s);
return;
}
if(num8>num9)
return;
if(num8<0 || num9<=0)
return;
calc(s+'8',num8-1,num9);
calc(s+'9',num8,num9-1);
}
int main()
{
calc("",4,4); //Intial string, count of 8, count of 9
for(int i=0;i<vec.size();i++)
cout<<vec[i]<<endl;
}