Last Updated on February 20, 2023 by Prepbytes
There are many reasons that drive one candidate to join Infosys such as career stability, better working conditions, competitive salary, Global experience, innovation, social responsibility, and diversity. But one cannot get placed in Infosys directly he has to follow the interview process in that there are various interview rounds and he has to clear each interview round to get placed in Infosys.
Among all the interview rounds there are many topics or domains that are covered or tested like aptitude, technical knowledge, and coding questions. In this blog, we will discuss some of the coding questions that are asked in Infosys.
Infosys Coding Questions
Here is the list of some of the commonly asked Infosys Coding Questions.
1. Write a program in C++ to quickly swap two arrays.
Sample Input
a[] = {11, 12,13,14}
b[] = {15, 16, 17, 18}
Sample Output
a[] = {15, 16, 17, 18}
b[] = {11, 12, 13, 14}
// Illustrating the use of swap function
int a[] = {11, 12, 13, 14};
int b[] = {15, 16, 17, 18};
int n = sizeof(a)/sizeof(a[0]);
// Illustrating the use of swap function
// to swap two arrays
#include <iostream>
#include <utility>
using namespace std;
int main ()
{
int a[] = {11, 12, 13, 14};
int b[] = {15, 16, 17, 18};
int n = sizeof(a)/sizeof(a[0]);
swap(a, b);
cout << "a[] = ";
for (int i=0; i<n; i++)
cout << a[i] << ", ";
cout << "\nb[] = ";
for (int i=0; i<n; i++)
cout << b[i] << ", ";
return 0;
}
// Illustrating the use of swap function
// to swap two arrays
#include <iostream>
#include <utility>
using namespace std;
int main ()
{
int a[] = {11, 12, 13, 14};
int b[] = {15, 16, 17, 18};
int n = sizeof(a)/sizeof(a[0]);
swap(a, b);
cout << "a[] = ";
for (int i=0; i<n; i++)
cout << a[i] << ", ";
cout << "\nb[] = ";
for (int i=0; i<n; i++)
cout << b[i] << ", ";
return 0;
}
Output
a[] = 15, 16, 17, 18,
b[] = 11, 12, 13, 14,
2. Write a Program to sort a string of characters
Sample Input
s=”prepbytes”
Sample Output
s=”beepprsty”
void sortString(string &str)
int charCount[MAX_CHAR] = {0};
for (int i=0; i<str.length(); i++)
for (int i=0;i<MAX_CHAR;i++)
for (int j=0;j<charCount[i];j++)
#include<bits/stdc++.h>
using namespace std;
const int MAX_CHAR = 26;
void sortString(string &str)
{
int charCount[MAX_CHAR] = {0};
for (int i=0; i<str.length(); i++)
charCount[str[i]-'a']++;
for (int i=0;i<MAX_CHAR;i++)
for (int j=0;j<charCount[i];j++)
cout << (char)('a'+i);
}
int main()
{
string s = "prepbytes";
sortString(s);
return 0;
}
#include<bits/stdc++.h>
using namespace std;
const int MAX_CHAR = 26;
void sortString(string &str)
{
int charCount[MAX_CHAR] = {0};
for (int i=0; i<str.length(); i++)
charCount[str[i]-'a']++;
for (int i=0;i<MAX_CHAR;i++)
for (int j=0;j<charCount[i];j++)
cout << (char)('a'+i);
}
int main()
{
string s = "prepbytes";
sortString(s);
return 0;
}
static final int MAX_CHAR = 26;
static void sortString(String str) {
int letters[] = new int[MAX_CHAR];
for (char x : str.toCharArray()) {
for (int i = 0; i < MAX_CHAR; i++) {
for (int j = 0; j < letters[i]; j++) {
System.out.print((char) (i + 'a'));
public static void main(String[] args) {
class SortString{
static final int MAX_CHAR = 26;
static void sortString(String str) {
int letters[] = new int[MAX_CHAR];
for (char x : str.toCharArray()) {
letters[x - 'a']++;
}
for (int i = 0; i < MAX_CHAR; i++) {
for (int j = 0; j < letters[i]; j++) {
System.out.print((char) (i + 'a'));
}
}
}
public static void main(String[] args) {
sortString("prepbytes");
}
}
class SortString{
static final int MAX_CHAR = 26;
static void sortString(String str) {
int letters[] = new int[MAX_CHAR];
for (char x : str.toCharArray()) {
letters[x - 'a']++;
}
for (int i = 0; i < MAX_CHAR; i++) {
for (int j = 0; j < letters[i]; j++) {
System.out.print((char) (i + 'a'));
}
}
}
public static void main(String[] args) {
sortString("prepbytes");
}
}
charCount = [0 for i in range(MAX_CHAR)]
for i in range(0, len(str), 1):
charCount[ord(str[i]) - ord('a')] += 1
for i in range(0, MAX_CHAR, 1):
for j in range(0, charCount[i], 1):
print(chr(ord('a') + i), end = "")
if __name__ == '__main__':
MAX_CHAR = 26
def sortString(str):
charCount = [0 for i in range(MAX_CHAR)]
for i in range(0, len(str), 1):
charCount[ord(str[i]) - ord('a')] += 1
for i in range(0, MAX_CHAR, 1):
for j in range(0, charCount[i], 1):
print(chr(ord('a') + i), end = "")
if __name__ == '__main__':
s = "prepbytes"
sortString(s)
MAX_CHAR = 26
def sortString(str):
charCount = [0 for i in range(MAX_CHAR)]
for i in range(0, len(str), 1):
charCount[ord(str[i]) - ord('a')] += 1
for i in range(0, MAX_CHAR, 1):
for j in range(0, charCount[i], 1):
print(chr(ord('a') + i), end = "")
if __name__ == '__main__':
s = "prepbytes"
sortString(s)
Output
beepprsty
3. Write a program to count the number of unique characters in a given string.
Sample Input
s=”prepbytes”
Sample Output
7
int cntDistinct(string str)
for (int i = 0; i < str.size(); i++) {
string str = "prepbytes";
cout << cntDistinct(str);
#include <bits/stdc++.h>
using namespace std;
int cntDistinct(string str)
{
unordered_set<char> s;
for (int i = 0; i < str.size(); i++) {
s.insert(str[i]);
}
return s.size();
}
int main()
{
string str = "prepbytes";
cout << cntDistinct(str);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int cntDistinct(string str)
{
unordered_set<char> s;
for (int i = 0; i < str.size(); i++) {
s.insert(str[i]);
}
return s.size();
}
int main()
{
string str = "prepbytes";
cout << cntDistinct(str);
return 0;
}
static int cntDistinct(String str)
HashSet<Character> s = new HashSet<Character>();
for(int i = 0; i < str.length(); i++)
public static void main(String args[])
String str = "prepbytes";
System.out.print(cntDistinct(str));
import java.util.*;
class Prepbytes{
static int cntDistinct(String str)
{
HashSet<Character> s = new HashSet<Character>();
for(int i = 0; i < str.length(); i++)
{
s.add(str.charAt(i));
}
return s.size();
}
public static void main(String args[])
{
String str = "prepbytes";
System.out.print(cntDistinct(str));
}
}
import java.util.*;
class Prepbytes{
static int cntDistinct(String str)
{
HashSet<Character> s = new HashSet<Character>();
for(int i = 0; i < str.length(); i++)
{
s.add(str.charAt(i));
}
return s.size();
}
public static void main(String args[])
{
String str = "prepbytes";
System.out.print(cntDistinct(str));
}
}
if __name__ == "__main__":
def cntDistinct(st):
s = set([])
for i in range(len(st)):
s.add(st[i])
return len(s)
if __name__ == "__main__":
st = "prepbytes"
print(cntDistinct(st))
def cntDistinct(st):
s = set([])
for i in range(len(st)):
s.add(st[i])
return len(s)
if __name__ == "__main__":
st = "prepbytes"
print(cntDistinct(st))
Output
7
4. Write a program to multiply two matrices and print the result through another matrix.
Sample Input
m1[m][n] = { {1, 1}, {2, 2} }
m2[n][p] = { {1, 1}, {2, 2} }
Sample Output
result[m][p] = { {3, 3}, {6, 6} }
void mulMat(int mat1[][C1], int mat2[][C2])
cout << "Multiplication of given two matrices is:\n";
for (int i = 0; i < R1; i++) {
for (int j = 0; j < C2; j++) {
for (int k = 0; k < R2; k++) {
rslt[i][j] += mat1[i][k] * mat2[k][j];
cout << rslt[i][j] << "\t";
int mat1[R1][C1] = { { 4, 4 },
int mat2[R2][C2] = { { 4, 7 },
cout << "The number of columns in Matrix-1 must "
"be equal to the number of rows in "
cout << "Please update MACROs according to your "
"array dimension in #define section"
#include <bits/stdc++.h>
using namespace std;
#define R1 2
#define C1 2
#define R2 2
#define C2 2
void mulMat(int mat1[][C1], int mat2[][C2])
{
int rslt[R1][C2];
cout << "Multiplication of given two matrices is:\n";
for (int i = 0; i < R1; i++) {
for (int j = 0; j < C2; j++) {
rslt[i][j] = 0;
for (int k = 0; k < R2; k++) {
rslt[i][j] += mat1[i][k] * mat2[k][j];
}
cout << rslt[i][j] << "\t";
}
cout << endl;
}
}
int main()
{
int mat1[R1][C1] = { { 4, 4 },
{ 5, 3 } };
int mat2[R2][C2] = { { 4, 7 },
{ 6, 2 } };
if (C1 != R2) {
cout << "The number of columns in Matrix-1 must "
"be equal to the number of rows in "
"Matrix-2"
<< endl;
cout << "Please update MACROs according to your "
"array dimension in #define section"
<< endl;
exit(EXIT_FAILURE);
}
mulMat(mat1, mat2);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
#define R1 2
#define C1 2
#define R2 2
#define C2 2
void mulMat(int mat1[][C1], int mat2[][C2])
{
int rslt[R1][C2];
cout << "Multiplication of given two matrices is:\n";
for (int i = 0; i < R1; i++) {
for (int j = 0; j < C2; j++) {
rslt[i][j] = 0;
for (int k = 0; k < R2; k++) {
rslt[i][j] += mat1[i][k] * mat2[k][j];
}
cout << rslt[i][j] << "\t";
}
cout << endl;
}
}
int main()
{
int mat1[R1][C1] = { { 4, 4 },
{ 5, 3 } };
int mat2[R2][C2] = { { 4, 7 },
{ 6, 2 } };
if (C1 != R2) {
cout << "The number of columns in Matrix-1 must "
"be equal to the number of rows in "
"Matrix-2"
<< endl;
cout << "Please update MACROs according to your "
"array dimension in #define section"
<< endl;
exit(EXIT_FAILURE);
}
mulMat(mat1, mat2);
return 0;
}
static void mulMat(int[][] mat1, int[][] mat2)
int[][] rslt = new int[R1][C2];
"Multiplication of given two matrices is:");
for (i = 0; i < R1; i++) {
for (j = 0; j < C2; j++) {
rslt[i][j] += mat1[i][k] * mat2[k][j];
System.out.print(rslt[i][j] + " ");
public static void main(String[] args)
int[][] mat1 = { { 4, 4 },
int[][] mat2 = { { 4, 7 },
"The number of columns in Matrix-1 must be equal to the number of rows in Matrix-2");
"Please update the global variables according to your array dimension");
import java.io.*;
import java.util.*;
class Prepbytes {
static int R1 = 2;
static int C1 = 2;
static int R2 = 2;
static int C2 = 2;
static void mulMat(int[][] mat1, int[][] mat2)
{
int[][] rslt = new int[R1][C2];
System.out.println(
"Multiplication of given two matrices is:");
int i, j, k;
for (i = 0; i < R1; i++) {
for (j = 0; j < C2; j++) {
rslt[i][j] = 0;
for (k = 0; k < R2; k++)
rslt[i][j] += mat1[i][k] * mat2[k][j];
System.out.print(rslt[i][j] + " ");
}
System.out.println("");
}
}
public static void main(String[] args)
{
int[][] mat1 = { { 4, 4 },
{ 5, 3 } };
int[][] mat2 = { { 4, 7 },
{ 6, 2 } };
if (C1 != R2) {
System.out.println(
"The number of columns in Matrix-1 must be equal to the number of rows in Matrix-2");
System.out.println(
"Please update the global variables according to your array dimension");
}
else {
mulMat(mat1, mat2);
}
}
}
import java.io.*;
import java.util.*;
class Prepbytes {
static int R1 = 2;
static int C1 = 2;
static int R2 = 2;
static int C2 = 2;
static void mulMat(int[][] mat1, int[][] mat2)
{
int[][] rslt = new int[R1][C2];
System.out.println(
"Multiplication of given two matrices is:");
int i, j, k;
for (i = 0; i < R1; i++) {
for (j = 0; j < C2; j++) {
rslt[i][j] = 0;
for (k = 0; k < R2; k++)
rslt[i][j] += mat1[i][k] * mat2[k][j];
System.out.print(rslt[i][j] + " ");
}
System.out.println("");
}
}
public static void main(String[] args)
{
int[][] mat1 = { { 4, 4 },
{ 5, 3 } };
int[][] mat2 = { { 4, 7 },
{ 6, 2 } };
if (C1 != R2) {
System.out.println(
"The number of columns in Matrix-1 must be equal to the number of rows in Matrix-2");
System.out.println(
"Please update the global variables according to your array dimension");
}
else {
mulMat(mat1, mat2);
}
}
}
def mulMat(mat1, mat2, R1, R2, C1, C2):
rslt[i][j] += mat1[i][k] * mat2[k][j]
print("Multiplication of given two matrices is:")
print(rslt[i][j], end=" ")
if __name__ == '__main__':
print("The number of columns in Matrix-1 must be equal to the number of rows in " + "Matrix-2", end='')
print("Please update MACROs according to your array dimension in #define section", end='')
mulMat(mat1, mat2, R1, R2, C1, C2)
def mulMat(mat1, mat2, R1, R2, C1, C2):
rslt = [[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]]
for i in range(0, R1):
for j in range(0, C2):
for k in range(0, R2):
rslt[i][j] += mat1[i][k] * mat2[k][j]
print("Multiplication of given two matrices is:")
for i in range(0, R1):
for j in range(0, C2):
print(rslt[i][j], end=" ")
print("\n", end="")
if __name__ == '__main__':
R1 = 2
R2 = 2
C1 = 2
C2 = 2
mat1 = [[4, 4],
[5, 3]]
mat2 = [[4, 7],
[6, 2]]
if C1 != R2:
print("The number of columns in Matrix-1 must be equal to the number of rows in " + "Matrix-2", end='')
print("\n", end='')
print("Please update MACROs according to your array dimension in #define section", end='')
print("\n", end='')
else:
mulMat(mat1, mat2, R1, R2, C1, C2)
def mulMat(mat1, mat2, R1, R2, C1, C2):
rslt = [[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]]
for i in range(0, R1):
for j in range(0, C2):
for k in range(0, R2):
rslt[i][j] += mat1[i][k] * mat2[k][j]
print("Multiplication of given two matrices is:")
for i in range(0, R1):
for j in range(0, C2):
print(rslt[i][j], end=" ")
print("\n", end="")
if __name__ == '__main__':
R1 = 2
R2 = 2
C1 = 2
C2 = 2
mat1 = [[4, 4],
[5, 3]]
mat2 = [[4, 7],
[6, 2]]
if C1 != R2:
print("The number of columns in Matrix-1 must be equal to the number of rows in " + "Matrix-2", end='')
print("\n", end='')
print("Please update MACROs according to your array dimension in #define section", end='')
print("\n", end='')
else:
mulMat(mat1, mat2, R1, R2, C1, C2)
Output
Multiplication of given two matrices is:
40 36
38 41
5. Given a string find the next permutation of the given string in C++.
Sample Input
s=”dcd”
Sample Output
s=”ddc”
void swap(char* a, char* b)
void rev(string& s, int l, int r)
int bsearch(string& s, int l, int r, int key)
int mid = l + (r - l) / 2;
if (index == -1 || s[index] >= s[mid])
bool nextpermutation(string& s)
int len = s.length(), i = len - 2;
while (i >= 0 && s[i] >= s[i + 1])
int index = bsearch(s, i + 1, len - 1, s[i]);
string s = { "prepbytes" };
bool val = nextpermutation(s);
cout << "No Word Possible" << endl;
#include <iostream>
using namespace std;
void swap(char* a, char* b)
{
if (*a == *b)
return;
*a ^= *b;
*b ^= *a;
*a ^= *b;
}
void rev(string& s, int l, int r)
{
while (l < r)
swap(&s[l++], &s[r--]);
}
int bsearch(string& s, int l, int r, int key)
{
int index = -1;
while (l <= r) {
int mid = l + (r - l) / 2;
if (s[mid] <= key)
r = mid - 1;
else {
l = mid + 1;
if (index == -1 || s[index] >= s[mid])
index = mid;
}
}
return index;
}
bool nextpermutation(string& s)
{
int len = s.length(), i = len - 2;
while (i >= 0 && s[i] >= s[i + 1])
--i;
if (i < 0)
return false;
else {
int index = bsearch(s, i + 1, len - 1, s[i]);
swap(&s[i], &s[index]);
rev(s, i + 1, len - 1);
return true;
}
}
int main()
{
string s = { "prepbytes" };
bool val = nextpermutation(s);
if (val == false)
cout << "No Word Possible" << endl;
else
cout << s << endl;
return 0;
}
#include <iostream>
using namespace std;
void swap(char* a, char* b)
{
if (*a == *b)
return;
*a ^= *b;
*b ^= *a;
*a ^= *b;
}
void rev(string& s, int l, int r)
{
while (l < r)
swap(&s[l++], &s[r--]);
}
int bsearch(string& s, int l, int r, int key)
{
int index = -1;
while (l <= r) {
int mid = l + (r - l) / 2;
if (s[mid] <= key)
r = mid - 1;
else {
l = mid + 1;
if (index == -1 || s[index] >= s[mid])
index = mid;
}
}
return index;
}
bool nextpermutation(string& s)
{
int len = s.length(), i = len - 2;
while (i >= 0 && s[i] >= s[i + 1])
--i;
if (i < 0)
return false;
else {
int index = bsearch(s, i + 1, len - 1, s[i]);
swap(&s[i], &s[index]);
rev(s, i + 1, len - 1);
return true;
}
}
int main()
{
string s = { "prepbytes" };
bool val = nextpermutation(s);
if (val == false)
cout << "No Word Possible" << endl;
else
cout << s << endl;
return 0;
}
Output
prepbytse
6. Write a program to find the area of the incircle of a right angles triangle.
Sample Input
P = 5, B = 12, H = 13
Sample Output
12.56
float area_inscribed(float P, float B, float H)
return ((P + B - H) * (P + B - H) * (PI / 4));
float P = 3, B = 4, H = 5;
cout << area_inscribed(P, B, H) << endl;
#include <bits/stdc++.h>
using namespace std;
#define PI 3.14159265
float area_inscribed(float P, float B, float H)
{
return ((P + B - H) * (P + B - H) * (PI / 4));
}
int main()
{
float P = 3, B = 4, H = 5;
cout << area_inscribed(P, B, H) << endl;
return 0;
}
#include <bits/stdc++.h>
using namespace std;
#define PI 3.14159265
float area_inscribed(float P, float B, float H)
{
return ((P + B - H) * (P + B - H) * (PI / 4));
}
int main()
{
float P = 3, B = 4, H = 5;
cout << area_inscribed(P, B, H) << endl;
return 0;
}
static double PI = 3.14159265;
public static double area_inscribed(double P, double B,
return ((P + B - H) * (P + B - H) * (PI / 4));
public static void main(String[] args)
double P = 3, B = 4, H = 5;
System.out.println(area_inscribed(P, B, H));
import java.lang.*;
class Prepbytes {
static double PI = 3.14159265;
public static double area_inscribed(double P, double B,
double H)
{
return ((P + B - H) * (P + B - H) * (PI / 4));
}
public static void main(String[] args)
{
double P = 3, B = 4, H = 5;
System.out.println(area_inscribed(P, B, H));
}
}
import java.lang.*;
class Prepbytes {
static double PI = 3.14159265;
public static double area_inscribed(double P, double B,
double H)
{
return ((P + B - H) * (P + B - H) * (PI / 4));
}
public static void main(String[] args)
{
double P = 3, B = 4, H = 5;
System.out.println(area_inscribed(P, B, H));
}
}
def area_inscribed(P, B, H):
return ((P + B - H)*(P + B - H)*(PI / 4))
print(area_inscribed(P, B, H))
PI = 3.14159265
def area_inscribed(P, B, H):
return ((P + B - H)*(P + B - H)*(PI / 4))
P = 3
B = 4
H = 5
print(area_inscribed(P, B, H))
PI = 3.14159265
def area_inscribed(P, B, H):
return ((P + B - H)*(P + B - H)*(PI / 4))
P = 3
B = 4
H = 5
print(area_inscribed(P, B, H))
7. Write a program that will find the missing characters that are needed to make the string a panagram.
Sample Input
welcome to prepbytes
Sample Output
adfghijknquvxz
string missingChars(string str)
bool present[MAX_CHAR] = {false};
for (int i=0; i<str.length(); i++)
if (str[i] >= 'a' && str[i] <= 'z')
present[str[i]-'a'] = true;
else if (str[i] >= 'A' && str[i] <= 'Z')
present[str[i]-'A'] = true;
for (int i=0; i<MAX_CHAR; i++)
res.push_back((char)(i+'a'));
string str = "Welcome to prepbytes";
cout << missingChars(str);
#include<bits/stdc++.h>
using namespace std;
const int MAX_CHAR = 26;
string missingChars(string str)
{
bool present[MAX_CHAR] = {false};
for (int i=0; i<str.length(); i++)
{
if (str[i] >= 'a' && str[i] <= 'z')
present[str[i]-'a'] = true;
else if (str[i] >= 'A' && str[i] <= 'Z')
present[str[i]-'A'] = true;
}
string res = "";
for (int i=0; i<MAX_CHAR; i++)
if (present[i] == false)
res.push_back((char)(i+'a'));
return res;
}
int main()
{
string str = "Welcome to prepbytes";
cout << missingChars(str);
return 0;
}
#include<bits/stdc++.h>
using namespace std;
const int MAX_CHAR = 26;
string missingChars(string str)
{
bool present[MAX_CHAR] = {false};
for (int i=0; i<str.length(); i++)
{
if (str[i] >= 'a' && str[i] <= 'z')
present[str[i]-'a'] = true;
else if (str[i] >= 'A' && str[i] <= 'Z')
present[str[i]-'A'] = true;
}
string res = "";
for (int i=0; i<MAX_CHAR; i++)
if (present[i] == false)
res.push_back((char)(i+'a'));
return res;
}
int main()
{
string str = "Welcome to prepbytes";
cout << missingChars(str);
return 0;
}
import java.util.ArrayList;
private static ArrayList<Character>missingChars(
String str, int strLength)
final int MAX_CHARS = 26;
boolean[] present = new boolean[MAX_CHARS];
ArrayList<Character> charsList = new ArrayList<>();
for(int i = 0; i < strLength; i++)
if ('A' <= str.charAt(i) &&
present[str.charAt(i) - 'A'] = true;
else if ('a' <= str.charAt(i) &&
present[str.charAt(i) - 'a'] = true;
for(int i = 0; i < MAX_CHARS; i++)
charsList.add((char)(i + 'a'));
public static void main(String[] args)
String str = "Welcome to prepbytes";
ArrayList<Character> missing = Prepbytes.missingChars(
for(Character character : missing)
System.out.print(character);
import java.io.*;
import java.util.ArrayList;
class Prepbytes{
private static ArrayList<Character>missingChars(
String str, int strLength)
{
final int MAX_CHARS = 26;
boolean[] present = new boolean[MAX_CHARS];
ArrayList<Character> charsList = new ArrayList<>();
for(int i = 0; i < strLength; i++)
{
if ('A' <= str.charAt(i) &&
str.charAt(i) <= 'Z')
present[str.charAt(i) - 'A'] = true;
else if ('a' <= str.charAt(i) &&
str.charAt(i) <= 'z')
present[str.charAt(i) - 'a'] = true;
}
for(int i = 0; i < MAX_CHARS; i++)
{
if (present[i] == false)
charsList.add((char)(i + 'a'));
}
return charsList;
}
public static void main(String[] args)
{
String str = "Welcome to prepbytes";
ArrayList<Character> missing = Prepbytes.missingChars(
str, str.length());
if (missing.size() >= 1)
{
for(Character character : missing)
{
System.out.print(character);
}
}
}
}
import java.io.*;
import java.util.ArrayList;
class Prepbytes{
private static ArrayList<Character>missingChars(
String str, int strLength)
{
final int MAX_CHARS = 26;
boolean[] present = new boolean[MAX_CHARS];
ArrayList<Character> charsList = new ArrayList<>();
for(int i = 0; i < strLength; i++)
{
if ('A' <= str.charAt(i) &&
str.charAt(i) <= 'Z')
present[str.charAt(i) - 'A'] = true;
else if ('a' <= str.charAt(i) &&
str.charAt(i) <= 'z')
present[str.charAt(i) - 'a'] = true;
}
for(int i = 0; i < MAX_CHARS; i++)
{
if (present[i] == false)
charsList.add((char)(i + 'a'));
}
return charsList;
}
public static void main(String[] args)
{
String str = "Welcome to prepbytes";
ArrayList<Character> missing = Prepbytes.missingChars(
str, str.length());
if (missing.size() >= 1)
{
for(Character character : missing)
{
System.out.print(character);
}
}
}
}
present = [False for i in range(MAX_CHAR)]
for i in range(len(Str)):
if (Str[i] >= 'a' and Str[i] <= 'z'):
present[ord(Str[i]) - ord('a')] = True
elif (Str[i] >= 'A' and Str[i] <= 'Z'):
present[ord(Str[i]) - ord('A')] = True
for i in range(MAX_CHAR):
if (present[i] == False):
Str = "Welcome to prepbytes"
MAX_CHAR = 26
def missingChars(Str):
present = [False for i in range(MAX_CHAR)]
for i in range(len(Str)):
if (Str[i] >= 'a' and Str[i] <= 'z'):
present[ord(Str[i]) - ord('a')] = True
elif (Str[i] >= 'A' and Str[i] <= 'Z'):
present[ord(Str[i]) - ord('A')] = True
res = ""
for i in range(MAX_CHAR):
if (present[i] == False):
res += chr(i + ord('a'))
return res
Str = "Welcome to prepbytes"
print(missingChars(Str))
MAX_CHAR = 26
def missingChars(Str):
present = [False for i in range(MAX_CHAR)]
for i in range(len(Str)):
if (Str[i] >= 'a' and Str[i] <= 'z'):
present[ord(Str[i]) - ord('a')] = True
elif (Str[i] >= 'A' and Str[i] <= 'Z'):
present[ord(Str[i]) - ord('A')] = True
res = ""
for i in range(MAX_CHAR):
if (present[i] == False):
res += chr(i + ord('a'))
return res
Str = "Welcome to prepbytes"
print(missingChars(Str))
Output
adfghijknquvxz
8. Write a program that converts the given temperature of Fahrenheit into celsius.
Sample Input
0
Sample Output
32
float Cel_To_Fah(float N)
return ((N * 9.0 / 5.0) + 32.0);
#include <bits/stdc++.h>
using namespace std;
float Cel_To_Fah(float N)
{
return ((N * 9.0 / 5.0) + 32.0);
}
int main()
{
float N = 40.0;
cout << Cel_To_Fah(N);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
float Cel_To_Fah(float N)
{
return ((N * 9.0 / 5.0) + 32.0);
}
int main()
{
float N = 40.0;
cout << Cel_To_Fah(N);
return 0;
}
static float Cel_To_Fah(float N)
return ((N * 9.0f / 5.0f) + 32.0f);
public static void main(String[] args)
System.out.println(Cel_To_Fah(N));
class Prepbytes {
static float Cel_To_Fah(float N)
{
return ((N * 9.0f / 5.0f) + 32.0f);
}
public static void main(String[] args)
{
float N = 40.0f;
System.out.println(Cel_To_Fah(N));
}
}
class Prepbytes {
static float Cel_To_Fah(float N)
{
return ((N * 9.0f / 5.0f) + 32.0f);
}
public static void main(String[] args)
{
float N = 40.0f;
System.out.println(Cel_To_Fah(N));
}
}
print(int(Cel_To_Fah(n)))
def Cel_To_Fah(n):
return (n*1.8)+32
n = 40
print(int(Cel_To_Fah(n)))
def Cel_To_Fah(n):
return (n*1.8)+32
n = 40
print(int(Cel_To_Fah(n)))
Output
104
9. Write a program that will find the sum of all the prime numbers between 1 and N.
Sample Input
10
Sample Output
17
memset(prime, true, n + 1);
for (int p = 2; p * p <= n; p++) {
for (int i = p * 2; i <= n; i += p)
for (int i = 2; i <= n; i++)
#include <bits/stdc++.h>
using namespace std;
int sumOfPrimes(int n)
{
bool prime[n + 1];
memset(prime, true, n + 1);
for (int p = 2; p * p <= n; p++) {
if (prime[p] == true) {
for (int i = p * 2; i <= n; i += p)
prime[i] = false;
}
}
int sum = 0;
for (int i = 2; i <= n; i++)
if (prime[i])
sum += i;
return sum;
}
int main()
{
int n = 15;
cout << sumOfPrimes(n);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int sumOfPrimes(int n)
{
bool prime[n + 1];
memset(prime, true, n + 1);
for (int p = 2; p * p <= n; p++) {
if (prime[p] == true) {
for (int i = p * 2; i <= n; i += p)
prime[i] = false;
}
}
int sum = 0;
for (int i = 2; i <= n; i++)
if (prime[i])
sum += i;
return sum;
}
int main()
{
int n = 15;
cout << sumOfPrimes(n);
return 0;
}
static int sumOfPrimes(int n)
boolean prime[]=new boolean[n + 1];
Arrays.fill(prime, true);
for (int p = 2; p * p <= n; p++) {
for (int i = p * 2; i <= n; i += p)
for (int i = 2; i <= n; i++)
public static void main(String args[])
System.out.print(sumOfPrimes(n));
import java.io.*;
import java.util.*;
class Prepbytes {
static int sumOfPrimes(int n)
{
boolean prime[]=new boolean[n + 1];
Arrays.fill(prime, true);
for (int p = 2; p * p <= n; p++) {
if (prime[p] == true) {
for (int i = p * 2; i <= n; i += p)
prime[i] = false;
}
}
int sum = 0;
for (int i = 2; i <= n; i++)
if (prime[i])
sum += i;
return sum;
}
public static void main(String args[])
{
int n = 15;
System.out.print(sumOfPrimes(n));
}
}
import java.io.*;
import java.util.*;
class Prepbytes {
static int sumOfPrimes(int n)
{
boolean prime[]=new boolean[n + 1];
Arrays.fill(prime, true);
for (int p = 2; p * p <= n; p++) {
if (prime[p] == true) {
for (int i = p * 2; i <= n; i += p)
prime[i] = false;
}
}
int sum = 0;
for (int i = 2; i <= n; i++)
if (prime[i])
sum += i;
return sum;
}
public static void main(String args[])
{
int n = 15;
System.out.print(sumOfPrimes(n));
}
}
for i in range (2, n + 1):
def sumOfPrimes(n):
prime = [True] * (n + 1)
p = 2
while p * p <= n:
if prime[p] == True:
i = p * 2
while i <= n:
prime[i] = False
i += p
p += 1
sum = 0
for i in range (2, n + 1):
if(prime[i]):
sum += i
return sum
n = 15
print(sumOfPrimes(n))
def sumOfPrimes(n):
prime = [True] * (n + 1)
p = 2
while p * p <= n:
if prime[p] == True:
i = p * 2
while i <= n:
prime[i] = False
i += p
p += 1
sum = 0
for i in range (2, n + 1):
if(prime[i]):
sum += i
return sum
n = 15
print(sumOfPrimes(n))
Output
41
10. Write a program to make the largest number from the digits of the array.
Sample Input
{1, 34, 3, 98, 9, 76, 45, 4}
Sample Output
998764543431
int myCompare(string X, string Y)
return XY.compare(YX) > 0 ? 1 : 0;
void printLargest(vector<string> arr)
sort(arr.begin(), arr.end(), myCompare);
for (int i = 0; i < arr.size(); i++)
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int myCompare(string X, string Y)
{
string XY = X.append(Y);
string YX = Y.append(X);
return XY.compare(YX) > 0 ? 1 : 0;
}
void printLargest(vector<string> arr)
{
sort(arr.begin(), arr.end(), myCompare);
for (int i = 0; i < arr.size(); i++)
cout << arr[i];
}
int main()
{
vector<string> arr;
arr.push_back("54");
arr.push_back("546");
arr.push_back("548");
arr.push_back("60");
printLargest(arr);
return 0;
}
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int myCompare(string X, string Y)
{
string XY = X.append(Y);
string YX = Y.append(X);
return XY.compare(YX) > 0 ? 1 : 0;
}
void printLargest(vector<string> arr)
{
sort(arr.begin(), arr.end(), myCompare);
for (int i = 0; i < arr.size(); i++)
cout << arr[i];
}
int main()
{
vector<string> arr;
arr.push_back("54");
arr.push_back("546");
arr.push_back("548");
arr.push_back("60");
printLargest(arr);
return 0;
}
static void printLargest(Vector<String> arr)
Collections.sort(arr, new Comparator<String>()
@Override public int compare(String X, String Y)
return XY.compareTo(YX) > 0 ? -1 : 1;
Iterator it = arr.iterator();
System.out.print(it.next());
public static void main(String[] args)
import java.util.*;
class Prepbytes {
static void printLargest(Vector<String> arr)
{
Collections.sort(arr, new Comparator<String>()
{
@Override public int compare(String X, String Y)
{
String XY = X + Y;
String YX = Y + X;
return XY.compareTo(YX) > 0 ? -1 : 1;
}
});
Iterator it = arr.iterator();
while (it.hasNext())
System.out.print(it.next());
}
public static void main(String[] args)
{
Vector<String> arr;
arr = new Vector<>();
arr.add("54");
arr.add("546");
arr.add("548");
arr.add("60");
printLargest(arr);
}
}
import java.util.*;
class Prepbytes {
static void printLargest(Vector<String> arr)
{
Collections.sort(arr, new Comparator<String>()
{
@Override public int compare(String X, String Y)
{
String XY = X + Y;
String YX = Y + X;
return XY.compareTo(YX) > 0 ? -1 : 1;
}
});
Iterator it = arr.iterator();
while (it.hasNext())
System.out.print(it.next());
}
public static void main(String[] args)
{
Vector<String> arr;
arr = new Vector<>();
arr.add("54");
arr.add("546");
arr.add("548");
arr.add("60");
printLargest(arr);
}
}
def largestNumber(array):
for i in range(len(array)):
for i in range(len(array)):
for j in range(1+i,len(array)):
if array[j]+array[i]>array[i]+array[j]:
array[i],array[j]=array[j],array[i]
if(result=='0'*len(result)):
def largestNumber(array):
if len(array)==1:
return str(array[0])
for i in range(len(array)):
array[i]=str(array[i])
for i in range(len(array)):
for j in range(1+i,len(array)):
if array[j]+array[i]>array[i]+array[j]:
array[i],array[j]=array[j],array[i]
result=''.join(array)
if(result=='0'*len(result)):
return '0'
else:
return result
a = [54, 546, 548, 60]
print(largestNumber(a))
def largestNumber(array):
if len(array)==1:
return str(array[0])
for i in range(len(array)):
array[i]=str(array[i])
for i in range(len(array)):
for j in range(1+i,len(array)):
if array[j]+array[i]>array[i]+array[j]:
array[i],array[j]=array[j],array[i]
result=''.join(array)
if(result=='0'*len(result)):
return '0'
else:
return result
a = [54, 546, 548, 60]
print(largestNumber(a))
Output
6054854654
11. Given an array form a triangle such that the last row of the triangle contains all the elements of the array and the row above it will contain the sum of two elements below it.
Sample Input
arr[] = {4, 7, 3, 6, 7};
Sample Output
81
40 41
21 19 22
11 10 9 13
4 7 3 6 7
void printTriangle(int arr[], int n)
memset(tri, 0, sizeof(tri));
for (int i = 0; i < n ; i++)
for (int i = n-2; i >=0; i--)
for (int j = 0; j <= i; j++)
tri[i][j] = tri[i+1][j] + tri[i+1][j+1];
for (int i = 0; i < n; i++)
for(int j = 0; j <= i ; j++)
int arr[] = {4, 7, 3, 6, 7, 3};
int n = sizeof(arr)/sizeof(arr[0]);
#include <bits/stdc++.h>
using namespace std;
void printTriangle(int arr[], int n)
{
int tri[n][n];
memset(tri, 0, sizeof(tri));
for (int i = 0; i < n ; i++)
tri[n-1][i] = arr[i];
for (int i = n-2; i >=0; i--)
for (int j = 0; j <= i; j++)
tri[i][j] = tri[i+1][j] + tri[i+1][j+1];
for (int i = 0; i < n; i++)
{
for(int j = 0; j <= i ; j++)
cout << tri[i][j]<<" ";
cout << endl;
}
}
int main()
{
int arr[] = {4, 7, 3, 6, 7, 3};
int n = sizeof(arr)/sizeof(arr[0]);
printTriangle(arr, n);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
void printTriangle(int arr[], int n)
{
int tri[n][n];
memset(tri, 0, sizeof(tri));
for (int i = 0; i < n ; i++)
tri[n-1][i] = arr[i];
for (int i = n-2; i >=0; i--)
for (int j = 0; j <= i; j++)
tri[i][j] = tri[i+1][j] + tri[i+1][j+1];
for (int i = 0; i < n; i++)
{
for(int j = 0; j <= i ; j++)
cout << tri[i][j]<<" ";
cout << endl;
}
}
int main()
{
int arr[] = {4, 7, 3, 6, 7, 3};
int n = sizeof(arr)/sizeof(arr[0]);
printTriangle(arr, n);
return 0;
}
static int arr[] = new int[]{4, 7, 3, 6, 7, 3};
public static void printTriangle(int n)
int tri[][] = new int[n][n];
for (int i = 0; i < n ; i++)
for (int i = n-2; i >=0; i--)
for (int j = 0; j <= i; j++)
tri[i][j] = tri[i+1][j] + tri[i+1][j+1];
for (int i = 0; i < n; i++)
for(int j = 0; j <= i ; j++)
System.out.print(tri[i][j] + " ");
public static void main(String[] args)
printTriangle(arr.length);
class Test{
static int arr[] = new int[]{4, 7, 3, 6, 7, 3};
public static void printTriangle(int n)
{
int tri[][] = new int[n][n];
for (int i = 0; i < n ; i++)
tri[n-1][i] = arr[i];
for (int i = n-2; i >=0; i--)
for (int j = 0; j <= i; j++)
tri[i][j] = tri[i+1][j] + tri[i+1][j+1];
for (int i = 0; i < n; i++)
{
for(int j = 0; j <= i ; j++)
System.out.print(tri[i][j] + " ");
System.out.println();
}
}
public static void main(String[] args)
{
printTriangle(arr.length);
}
}
class Test{
static int arr[] = new int[]{4, 7, 3, 6, 7, 3};
public static void printTriangle(int n)
{
int tri[][] = new int[n][n];
for (int i = 0; i < n ; i++)
tri[n-1][i] = arr[i];
for (int i = n-2; i >=0; i--)
for (int j = 0; j <= i; j++)
tri[i][j] = tri[i+1][j] + tri[i+1][j+1];
for (int i = 0; i < n; i++)
{
for(int j = 0; j <= i ; j++)
System.out.print(tri[i][j] + " ");
System.out.println();
}
}
public static void main(String[] args)
{
printTriangle(arr.length);
}
}
def printTriangle(arr, n):
tri = [[0 for i in range(n)]
for j in range(0, i + 1, 1):
tri[i][j] = (tri[i + 1][j] +
for j in range(0, i + 1, 1):
print(tri[i][j], end = " ")
def printTriangle(arr, n):
tri = [[0 for i in range(n)]
for i in range(n)]
for i in range(n):
tri[n - 1][i] = arr[i]
i = n - 2
while(i >= 0):
for j in range(0, i + 1, 1):
tri[i][j] = (tri[i + 1][j] +
tri[i + 1][j + 1])
i -= 1
for i in range(0, n, 1):
for j in range(0, i + 1, 1):
print(tri[i][j], end = " ")
print("\n", end = "")
arr = [4, 7, 3, 6, 7, 3]
n = len(arr)
printTriangle(arr, n)
def printTriangle(arr, n):
tri = [[0 for i in range(n)]
for i in range(n)]
for i in range(n):
tri[n - 1][i] = arr[i]
i = n - 2
while(i >= 0):
for j in range(0, i + 1, 1):
tri[i][j] = (tri[i + 1][j] +
tri[i + 1][j + 1])
i -= 1
for i in range(0, n, 1):
for j in range(0, i + 1, 1):
print(tri[i][j], end = " ")
print("\n", end = "")
arr = [4, 7, 3, 6, 7, 3]
n = len(arr)
printTriangle(arr, n)
Output
167
81 86
40 41 45
21 19 22 23
11 10 9 13 10
4 7 3 6 7 3
12. Given the price of the stock on each day find the maximum profit you can earn by selling them.
Sample Input
arr[] = {100, 180, 260, 310, 40, 535, 695}
Sample Output
865
int maxProfit(int price[], int start, int end)
for (int i = start; i < end; i++) {
for (int j = i + 1; j <= end; j++) {
if (price[j] > price[i]) {
+ maxProfit(price, start, i - 1)
+ maxProfit(price, j + 1, end);
profit = max(profit, curr_profit);
int price[] = { 100, 180, 260, 310, 40, 535, 695 };
int n = sizeof(price) / sizeof(price[0]);
cout << maxProfit(price, 0, n - 1);
#include <bits/stdc++.h>
using namespace std;
int maxProfit(int price[], int start, int end)
{
if (end <= start)
return 0;
int profit = 0;
for (int i = start; i < end; i++) {
for (int j = i + 1; j <= end; j++) {
if (price[j] > price[i]) {
int curr_profit
= price[j] - price[i]
+ maxProfit(price, start, i - 1)
+ maxProfit(price, j + 1, end);
profit = max(profit, curr_profit);
}
}
}
return profit;
}
int main()
{
int price[] = { 100, 180, 260, 310, 40, 535, 695 };
int n = sizeof(price) / sizeof(price[0]);
cout << maxProfit(price, 0, n - 1);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int maxProfit(int price[], int start, int end)
{
if (end <= start)
return 0;
int profit = 0;
for (int i = start; i < end; i++) {
for (int j = i + 1; j <= end; j++) {
if (price[j] > price[i]) {
int curr_profit
= price[j] - price[i]
+ maxProfit(price, start, i - 1)
+ maxProfit(price, j + 1, end);
profit = max(profit, curr_profit);
}
}
}
return profit;
}
int main()
{
int price[] = { 100, 180, 260, 310, 40, 535, 695 };
int n = sizeof(price) / sizeof(price[0]);
cout << maxProfit(price, 0, n - 1);
return 0;
}
static int maxProfit(int price[], int start, int end)
for (int i = start; i < end; i++) {
for (int j = i + 1; j <= end; j++) {
if (price[j] > price[i]) {
+ maxProfit(price, start, i - 1)
+ maxProfit(price, j + 1, end);
profit = Math.max(profit, curr_profit);
public static void main(String[] args)
int price[] = { 100, 180, 260, 310, 40, 535, 695 };
System.out.print(maxProfit(price, 0, n - 1));
import java.util.*;
class PrepBytes {
static int maxProfit(int price[], int start, int end)
{
if (end <= start)
return 0;
int profit = 0;
for (int i = start; i < end; i++) {
for (int j = i + 1; j <= end; j++) {
if (price[j] > price[i]) {
int curr_profit
= price[j] - price[i]
+ maxProfit(price, start, i - 1)
+ maxProfit(price, j + 1, end);
profit = Math.max(profit, curr_profit);
}
}
}
return profit;
}
public static void main(String[] args)
{
int price[] = { 100, 180, 260, 310, 40, 535, 695 };
int n = price.length;
System.out.print(maxProfit(price, 0, n - 1));
}
}
import java.util.*;
class PrepBytes {
static int maxProfit(int price[], int start, int end)
{
if (end <= start)
return 0;
int profit = 0;
for (int i = start; i < end; i++) {
for (int j = i + 1; j <= end; j++) {
if (price[j] > price[i]) {
int curr_profit
= price[j] - price[i]
+ maxProfit(price, start, i - 1)
+ maxProfit(price, j + 1, end);
profit = Math.max(profit, curr_profit);
}
}
}
return profit;
}
public static void main(String[] args)
{
int price[] = { 100, 180, 260, 310, 40, 535, 695 };
int n = price.length;
System.out.print(maxProfit(price, 0, n - 1));
}
}
def maxProfit(price, start, end):
for i in range(start, end, 1):
for j in range(i+1, end+1):
if (price[j] > price[i]):
curr_profit = price[j] - price[i] +\
maxProfit(price, start, i - 1) + \
maxProfit(price, j + 1, end)
profit = max(profit, curr_profit)
if __name__ == '__main__':
price = [100, 180, 260, 310, 40, 535, 695]
print(maxProfit(price, 0, n - 1))
def maxProfit(price, start, end):
if (end <= start):
return 0
profit = 0
for i in range(start, end, 1):
for j in range(i+1, end+1):
if (price[j] > price[i]):
curr_profit = price[j] - price[i] +\
maxProfit(price, start, i - 1) + \
maxProfit(price, j + 1, end)
profit = max(profit, curr_profit)
return profit
if __name__ == '__main__':
price = [100, 180, 260, 310, 40, 535, 695]
n = len(price)
print(maxProfit(price, 0, n - 1))
def maxProfit(price, start, end):
if (end <= start):
return 0
profit = 0
for i in range(start, end, 1):
for j in range(i+1, end+1):
if (price[j] > price[i]):
curr_profit = price[j] - price[i] +\
maxProfit(price, start, i - 1) + \
maxProfit(price, j + 1, end)
profit = max(profit, curr_profit)
return profit
if __name__ == '__main__':
price = [100, 180, 260, 310, 40, 535, 695]
n = len(price)
print(maxProfit(price, 0, n - 1))
Output
865
13. You are given a matrix that contains only 0 and 1 find the maximum size of a rectangle that contains only 1.
Sample Input
0 1 1 0
1 1 1 1
1 1 1 1
1 1 0 0
Sample Output
8
if (result.empty() || row[result.top()] <= row[i])
top_val = row[result.top()];
area = top_val * (i - result.top() - 1);
max_area = max(area, max_area);
while (!result.empty()) {
top_val = row[result.top()];
area = top_val * (i - result.top() - 1);
max_area = max(area, max_area);
int maxRectangle(int A[][C])
int result = maxHist(A[0]);
for (int i = 1; i < R; i++) {
for (int j = 0; j < C; j++)
result = max(result, maxHist(A[i]));
cout << "Area of maximum rectangle is "
#include <bits/stdc++.h>
using namespace std;
#define R 4
#define C 4
int maxHist(int row[])
{
stack<int> result;
int top_val;
int max_area = 0;
int area = 0;
int i = 0;
while (i < C) {
if (result.empty() || row[result.top()] <= row[i])
result.push(i++);
else {
top_val = row[result.top()];
result.pop();
area = top_val * i;
if (!result.empty())
area = top_val * (i - result.top() - 1);
max_area = max(area, max_area);
}
}
while (!result.empty()) {
top_val = row[result.top()];
result.pop();
area = top_val * i;
if (!result.empty())
area = top_val * (i - result.top() - 1);
max_area = max(area, max_area);
}
return max_area;
}
int maxRectangle(int A[][C])
{
int result = maxHist(A[0]);
for (int i = 1; i < R; i++) {
for (int j = 0; j < C; j++)
if (A[i][j])
A[i][j] += A[i - 1][j];
result = max(result, maxHist(A[i]));
}
return result;
}
int main()
{
int A[][C] = {
{ 0, 1, 1, 0 },
{ 1, 1, 1, 1 },
{ 1, 1, 1, 1 },
{ 1, 1, 0, 0 },
};
cout << "Area of maximum rectangle is "
<< maxRectangle(A);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
#define R 4
#define C 4
int maxHist(int row[])
{
stack<int> result;
int top_val;
int max_area = 0;
int area = 0;
int i = 0;
while (i < C) {
if (result.empty() || row[result.top()] <= row[i])
result.push(i++);
else {
top_val = row[result.top()];
result.pop();
area = top_val * i;
if (!result.empty())
area = top_val * (i - result.top() - 1);
max_area = max(area, max_area);
}
}
while (!result.empty()) {
top_val = row[result.top()];
result.pop();
area = top_val * i;
if (!result.empty())
area = top_val * (i - result.top() - 1);
max_area = max(area, max_area);
}
return max_area;
}
int maxRectangle(int A[][C])
{
int result = maxHist(A[0]);
for (int i = 1; i < R; i++) {
for (int j = 0; j < C; j++)
if (A[i][j])
A[i][j] += A[i - 1][j];
result = max(result, maxHist(A[i]));
}
return result;
}
int main()
{
int A[][C] = {
{ 0, 1, 1, 0 },
{ 1, 1, 1, 1 },
{ 1, 1, 1, 1 },
{ 1, 1, 0, 0 },
};
cout << "Area of maximum rectangle is "
<< maxRectangle(A);
return 0;
}
static int maxHist(int R, int C, int row[])
Stack<Integer> result = new Stack<Integer>();
|| row[result.peek()] <= row[i])
top_val = row[result.peek()];
= top_val * (i - result.peek() - 1);
max_area = Math.max(area, max_area);
while (!result.empty()) {
top_val = row[result.peek()];
area = top_val * (i - result.peek() - 1);
max_area = Math.max(area, max_area);
static int maxRectangle(int R, int C, int A[][])
int result = maxHist(R, C, A[0]);
for (int i = 1; i < R; i++) {
for (int j = 0; j < C; j++)
result = Math.max(result, maxHist(R, C, A[i]));
public static void main(String[] args)
System.out.print("Area of maximum rectangle is "
+ maxRectangle(R, C, A));
import java.io.*;
import java.util.*;
class PrepBytes {
static int maxHist(int R, int C, int row[])
{
Stack<Integer> result = new Stack<Integer>();
int top_val;
int max_area = 0;
int area = 0;
int i = 0;
while (i < C) {
if (result.empty()
|| row[result.peek()] <= row[i])
result.push(i++);
else {
top_val = row[result.peek()];
result.pop();
area = top_val * i;
if (!result.empty())
area
= top_val * (i - result.peek() - 1);
max_area = Math.max(area, max_area);
}
}
while (!result.empty()) {
top_val = row[result.peek()];
result.pop();
area = top_val * i;
if (!result.empty())
area = top_val * (i - result.peek() - 1);
max_area = Math.max(area, max_area);
}
return max_area;
}
static int maxRectangle(int R, int C, int A[][])
{
int result = maxHist(R, C, A[0]);
for (int i = 1; i < R; i++) {
for (int j = 0; j < C; j++)
if (A[i][j] == 1)
A[i][j] += A[i - 1][j];
result = Math.max(result, maxHist(R, C, A[i]));
}
return result;
}
public static void main(String[] args)
{
int R = 4;
int C = 4;
int A[][] = {
{ 0, 1, 1, 0 },
{ 1, 1, 1, 1 },
{ 1, 1, 1, 1 },
{ 1, 1, 0, 0 },
};
System.out.print("Area of maximum rectangle is "
+ maxRectangle(R, C, A));
}
}
import java.io.*;
import java.util.*;
class PrepBytes {
static int maxHist(int R, int C, int row[])
{
Stack<Integer> result = new Stack<Integer>();
int top_val;
int max_area = 0;
int area = 0;
int i = 0;
while (i < C) {
if (result.empty()
|| row[result.peek()] <= row[i])
result.push(i++);
else {
top_val = row[result.peek()];
result.pop();
area = top_val * i;
if (!result.empty())
area
= top_val * (i - result.peek() - 1);
max_area = Math.max(area, max_area);
}
}
while (!result.empty()) {
top_val = row[result.peek()];
result.pop();
area = top_val * i;
if (!result.empty())
area = top_val * (i - result.peek() - 1);
max_area = Math.max(area, max_area);
}
return max_area;
}
static int maxRectangle(int R, int C, int A[][])
{
int result = maxHist(R, C, A[0]);
for (int i = 1; i < R; i++) {
for (int j = 0; j < C; j++)
if (A[i][j] == 1)
A[i][j] += A[i - 1][j];
result = Math.max(result, maxHist(R, C, A[i]));
}
return result;
}
public static void main(String[] args)
{
int R = 4;
int C = 4;
int A[][] = {
{ 0, 1, 1, 0 },
{ 1, 1, 1, 1 },
{ 1, 1, 1, 1 },
{ 1, 1, 0, 0 },
};
System.out.print("Area of maximum rectangle is "
+ maxRectangle(R, C, A));
}
}
if (len(result) == 0) or (row[result[-1]] <= row[i]):
top_val = row[result.pop()]
area = top_val * (i - result[-1] - 1)
max_area = max(area, max_area)
top_val = row[result.pop()]
area = top_val * (i - result[-1] - 1)
max_area = max(area, max_area)
def maxRectangle(self, A):
result = self.maxHist(A[0])
for i in range(1, len(A)):
for j in range(len(A[i])):
result = max(result, self.maxHist(A[i]))
if __name__ == '__main__':
print("Area of maximum rectangle is",
class Solution():
def maxHist(self, row):
result = []
# Top of stack
top_val = 0
max_area = 0
area = 0
i = 0
while (i < len(row)):
if (len(result) == 0) or (row[result[-1]] <= row[i]):
result.append(i)
i += 1
else:
top_val = row[result.pop()]
area = top_val * i
if (len(result)):
area = top_val * (i - result[-1] - 1)
max_area = max(area, max_area)
while (len(result)):
top_val = row[result.pop()]
area = top_val * i
if (len(result)):
area = top_val * (i - result[-1] - 1)
max_area = max(area, max_area)
return max_area
def maxRectangle(self, A):
result = self.maxHist(A[0])
for i in range(1, len(A)):
for j in range(len(A[i])):
if (A[i][j]):
A[i][j] += A[i - 1][j]
result = max(result, self.maxHist(A[i]))
return result
if __name__ == '__main__':
A = [[0, 1, 1, 0],
[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 0, 0]]
ans = Solution()
print("Area of maximum rectangle is",
ans.maxRectangle(A))
class Solution():
def maxHist(self, row):
result = []
# Top of stack
top_val = 0
max_area = 0
area = 0
i = 0
while (i < len(row)):
if (len(result) == 0) or (row[result[-1]] <= row[i]):
result.append(i)
i += 1
else:
top_val = row[result.pop()]
area = top_val * i
if (len(result)):
area = top_val * (i - result[-1] - 1)
max_area = max(area, max_area)
while (len(result)):
top_val = row[result.pop()]
area = top_val * i
if (len(result)):
area = top_val * (i - result[-1] - 1)
max_area = max(area, max_area)
return max_area
def maxRectangle(self, A):
result = self.maxHist(A[0])
for i in range(1, len(A)):
for j in range(len(A[i])):
if (A[i][j]):
A[i][j] += A[i - 1][j]
result = max(result, self.maxHist(A[i]))
return result
if __name__ == '__main__':
A = [[0, 1, 1, 0],
[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 0, 0]]
ans = Solution()
print("Area of maximum rectangle is",
ans.maxRectangle(A))
Output
Area of maximum rectangle is 8
14. Given the coordinates of the endpoints of two rectangles find whether they overlap each other or not.
bool doOverlap(Point l1, Point r1, Point l2, Point r2)
if (l1.x == r1.x || l1.y == r1.y || r2.x == l2.x || l2.y == r2.y)
if (l1.x > r2.x || l2.x > r1.x)
if (r1.y > l2.y || r2.y > l1.y)
Point l1 = { 0, 10 }, r1 = { 10, 0 };
Point l2 = { 5, 5 }, r2 = { 15, 0 };
if (doOverlap(l1, r1, l2, r2))
printf("Rectangles Overlap");
printf("Rectangles Don't Overlap");
#include <bits/stdc++.h>
struct Point {
int x, y;
};
bool doOverlap(Point l1, Point r1, Point l2, Point r2)
{
if (l1.x == r1.x || l1.y == r1.y || r2.x == l2.x || l2.y == r2.y)
return false;
if (l1.x > r2.x || l2.x > r1.x)
return false;
if (r1.y > l2.y || r2.y > l1.y)
return false;
return true;
}
int main()
{
Point l1 = { 0, 10 }, r1 = { 10, 0 };
Point l2 = { 5, 5 }, r2 = { 15, 0 };
if (doOverlap(l1, r1, l2, r2))
printf("Rectangles Overlap");
else
printf("Rectangles Don't Overlap");
return 0;
}
#include <bits/stdc++.h>
struct Point {
int x, y;
};
bool doOverlap(Point l1, Point r1, Point l2, Point r2)
{
if (l1.x == r1.x || l1.y == r1.y || r2.x == l2.x || l2.y == r2.y)
return false;
if (l1.x > r2.x || l2.x > r1.x)
return false;
if (r1.y > l2.y || r2.y > l1.y)
return false;
return true;
}
int main()
{
Point l1 = { 0, 10 }, r1 = { 10, 0 };
Point l2 = { 5, 5 }, r2 = { 15, 0 };
if (doOverlap(l1, r1, l2, r2))
printf("Rectangles Overlap");
else
printf("Rectangles Don't Overlap");
return 0;
}
static boolean doOverlap(Point l1, Point r1, Point l2, Point r2) {
if (l1.x == r1.x || l1.y == r1.y || r2.x == l2.x || l2.y == r2.y)
if (l1.x > r2.x || l2.x > r1.x) {
if (r1.y > l2.y || r2.y > l1.y) {
public static void main(String[] args) {
Point l1 = new Point(),r1 = new Point(),
l2 = new Point(),r2 = new Point();
l1.x=0;l1.y=10; r1.x=10;r1.y=0;
l2.x=5;l2.y=5; r2.x=15;r2.y=0;
if (doOverlap(l1, r1, l2, r2)) {
System.out.println("Rectangles Overlap");
System.out.println("Rectangles Don't Overlap");
class PrepBytes {
static class Point {
int x, y;
}
static boolean doOverlap(Point l1, Point r1, Point l2, Point r2) {
if (l1.x == r1.x || l1.y == r1.y || r2.x == l2.x || l2.y == r2.y)
return false;
if (l1.x > r2.x || l2.x > r1.x) {
return false;
}
if (r1.y > l2.y || r2.y > l1.y) {
return false;
}
return true;
}
public static void main(String[] args) {
Point l1 = new Point(),r1 = new Point(),
l2 = new Point(),r2 = new Point();
l1.x=0;l1.y=10; r1.x=10;r1.y=0;
l2.x=5;l2.y=5; r2.x=15;r2.y=0;
if (doOverlap(l1, r1, l2, r2)) {
System.out.println("Rectangles Overlap");
} else {
System.out.println("Rectangles Don't Overlap");
}
}
}
class PrepBytes {
static class Point {
int x, y;
}
static boolean doOverlap(Point l1, Point r1, Point l2, Point r2) {
if (l1.x == r1.x || l1.y == r1.y || r2.x == l2.x || l2.y == r2.y)
return false;
if (l1.x > r2.x || l2.x > r1.x) {
return false;
}
if (r1.y > l2.y || r2.y > l1.y) {
return false;
}
return true;
}
public static void main(String[] args) {
Point l1 = new Point(),r1 = new Point(),
l2 = new Point(),r2 = new Point();
l1.x=0;l1.y=10; r1.x=10;r1.y=0;
l2.x=5;l2.y=5; r2.x=15;r2.y=0;
if (doOverlap(l1, r1, l2, r2)) {
System.out.println("Rectangles Overlap");
} else {
System.out.println("Rectangles Don't Overlap");
}
}
}
def __init__(self, x, y):
def do_overlap(l1, r1, l2, r2):
if l1.x == r1.x or l1.y == r1.y or r2.x == l2.x or l2.y == r2.y:
if l1.x > r2.x or l2.x > r1.x:
if r1.y > l2.y or r2.y > l1.y:
if __name__ == "__main__":
if(do_overlap(l1, r1, l2, r2)):
print("Rectangles Overlap")
print("Rectangles Don't Overlap")
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def do_overlap(l1, r1, l2, r2):
if l1.x == r1.x or l1.y == r1.y or r2.x == l2.x or l2.y == r2.y:
return False
if l1.x > r2.x or l2.x > r1.x:
return False
if r1.y > l2.y or r2.y > l1.y:
return False
return True
if __name__ == "__main__":
l1 = Point(0, 10)
r1 = Point(10, 0)
l2 = Point(5, 5)
r2 = Point(15, 0)
if(do_overlap(l1, r1, l2, r2)):
print("Rectangles Overlap")
else:
print("Rectangles Don't Overlap")
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def do_overlap(l1, r1, l2, r2):
if l1.x == r1.x or l1.y == r1.y or r2.x == l2.x or l2.y == r2.y:
return False
if l1.x > r2.x or l2.x > r1.x:
return False
if r1.y > l2.y or r2.y > l1.y:
return False
return True
if __name__ == "__main__":
l1 = Point(0, 10)
r1 = Point(10, 0)
l2 = Point(5, 5)
r2 = Point(15, 0)
if(do_overlap(l1, r1, l2, r2)):
print("Rectangles Overlap")
else:
print("Rectangles Don't Overlap")
Output
Rectangles Overlap
15. You are given two strings to find whether we can convert one string to another by rotating in two places.
Sample Input
string1 = “amazon”, string2 = “azonam”
Sample Output
Yes
bool isRotated(string str1, string str2)
if (str1.length() != str2.length())
return str1.compare(str2) == 0;
string anticlock_rot = "";
anticlock_rot = anticlock_rot +
return (str1.compare(clock_rot) == 0 ||
str1.compare(anticlock_rot) == 0);
isRotated(str1, str2) ? cout << "Yes"
#include<bits/stdc++.h>
using namespace std;
bool isRotated(string str1, string str2)
{
if (str1.length() != str2.length())
return false;
if(str1.length()<2){
return str1.compare(str2) == 0;
}
string clock_rot = "";
string anticlock_rot = "";
int len = str2.length();
anticlock_rot = anticlock_rot +
str2.substr(len-2, 2) +
str2.substr(0, len-2) ;
clock_rot = clock_rot +
str2.substr(2) +
str2.substr(0, 2) ;
return (str1.compare(clock_rot) == 0 ||
str1.compare(anticlock_rot) == 0);
}
int main()
{
string str1 = "prep";
string str2 = " eppr";
isRotated(str1, str2) ? cout << "Yes"
: cout << "No";
return 0;
}
#include<bits/stdc++.h>
using namespace std;
bool isRotated(string str1, string str2)
{
if (str1.length() != str2.length())
return false;
if(str1.length()<2){
return str1.compare(str2) == 0;
}
string clock_rot = "";
string anticlock_rot = "";
int len = str2.length();
anticlock_rot = anticlock_rot +
str2.substr(len-2, 2) +
str2.substr(0, len-2) ;
clock_rot = clock_rot +
str2.substr(2) +
str2.substr(0, 2) ;
return (str1.compare(clock_rot) == 0 ||
str1.compare(anticlock_rot) == 0);
}
int main()
{
string str1 = "prep";
string str2 = " eppr";
isRotated(str1, str2) ? cout << "Yes"
: cout << "No";
return 0;
}
static boolean isRotated(String str1, String str2)
if (str1.length() != str2.length())
return str1.equals(str2);
String anticlock_rot = "";
anticlock_rot = anticlock_rot +
str2.substring(len-2, len) +
str2.substring(0, len-2) ;
return (str1.equals(clock_rot) ||
str1.equals(anticlock_rot));
public static void main(String[] args)
System.out.println(isRotated(str1, str2) ? "Yes"
class Test
{
static boolean isRotated(String str1, String str2)
{
if (str1.length() != str2.length())
return false;
if(str1.length() < 2)
{
return str1.equals(str2);
}
String clock_rot = "";
String anticlock_rot = "";
int len = str2.length();
anticlock_rot = anticlock_rot +
str2.substring(len-2, len) +
str2.substring(0, len-2) ;
clock_rot = clock_rot +
str2.substring(2) +
str2.substring(0, 2) ;
return (str1.equals(clock_rot) ||
str1.equals(anticlock_rot));
}
public static void main(String[] args)
{
String str1 = "prep";
String str2 = " eppr";
System.out.println(isRotated(str1, str2) ? "Yes"
: "No");
}
}
class Test
{
static boolean isRotated(String str1, String str2)
{
if (str1.length() != str2.length())
return false;
if(str1.length() < 2)
{
return str1.equals(str2);
}
String clock_rot = "";
String anticlock_rot = "";
int len = str2.length();
anticlock_rot = anticlock_rot +
str2.substring(len-2, len) +
str2.substring(0, len-2) ;
clock_rot = clock_rot +
str2.substring(2) +
str2.substring(0, 2) ;
return (str1.equals(clock_rot) ||
str1.equals(anticlock_rot));
}
public static void main(String[] args)
{
String str1 = "prep";
String str2 = " eppr";
System.out.println(isRotated(str1, str2) ? "Yes"
: "No");
}
}
def isRotated(str1, str2):
if (len(str1) != len(str2)):
anticlock_rot = (anticlock_rot + str2[l - 2:] +
clock_rot = clock_rot + str2[2:] + str2[0:2]
return (str1 == clock_rot or
if isRotated(str1, str2):
def isRotated(str1, str2):
if (len(str1) != len(str2)):
return False
if(len(str1) < 2):
return str1 == str2
clock_rot = ""
anticlock_rot = ""
l = len(str2)
anticlock_rot = (anticlock_rot + str2[l - 2:] +
str2[0: l - 2])
clock_rot = clock_rot + str2[2:] + str2[0:2]
return (str1 == clock_rot or
str1 == anticlock_rot)
str1 = "prep"
str2 = "eppr"
if isRotated(str1, str2):
print("Yes")
else:
print("No")
def isRotated(str1, str2):
if (len(str1) != len(str2)):
return False
if(len(str1) < 2):
return str1 == str2
clock_rot = ""
anticlock_rot = ""
l = len(str2)
anticlock_rot = (anticlock_rot + str2[l - 2:] +
str2[0: l - 2])
clock_rot = clock_rot + str2[2:] + str2[0:2]
return (str1 == clock_rot or
str1 == anticlock_rot)
str1 = "prep"
str2 = "eppr"
if isRotated(str1, str2):
print("Yes")
else:
print("No")
Output
No
Frequently Asked Questions
1. How many coding questions come in Infosys Exam?
In the Infosys exam, there are three coding questions and they are of different difficulties which you have to attempt within 3 hours.
2. Are the questions which have come in previous years papers will repeat again?
There is a very low probability of repeating the same questions but the concept can be repeated and can be molded into a different question.
3. Is the exam taken offline or online mode?
The exam is taken online mode.
4. Name 3 Programming languages that are allowed in Infosys.
The three languages are: