Zoho - Round 2 - Questions
Zoho - Round 2 - Questions
3. Equilibrium index of an array is an index such that the sum of elements at lower
indexes is equal to the sum of elements at higher indexes. For example, in an array
A:
Example :
Input: A[] = {-7, 1, 5, 2, -4, 3, 0}
Output: 3
3 is an equilibrium index, because:
A[0] + A[1] + A[2] = A[4] + A[5] + A[6]
Input: A[] = {1, 2, 3}
Output: -1
4. In MS-Paint, when we take the brush to a pixel and click, the color of the
region of that pixel is replaced with a new selected color. Following is the
problem statement to do this task.
Given a 2D screen, location of a pixel in the screen and a color, replace color of
the given pixel and all adjacent same colored pixels with the given color.
Example:
Input:
screen[M][N] = {{1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 0, 0},
{1, 0, 0, 1, 1, 0, 1, 1},
{1, 2, 2, 2, 2, 0, 1, 0},
{1, 1, 1, 2, 2, 0, 1, 0},
{1, 1, 1, 2, 2, 2, 2, 0},
{1, 1, 1, 1, 1, 2, 1, 1},
{1, 1, 1, 1, 1, 2, 2, 1},
};
x = 4, y = 4, newColor = 3
The values in the given 2D screen indicate colors of the pixels.
x and y are coordinates of the brush, newColor is the color that
should replace the previous color on screen[x][y] and all surrounding
pixels with same color.
Output:
Screen should be changed to following.
screen[M][N] = {{1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 0, 0},
{1, 0, 0, 1, 1, 0, 1, 1},
{1, 3, 3, 3, 3, 0, 1, 0},
{1, 1, 1, 3, 3, 0, 1, 0},
{1, 1, 1, 3, 3, 3, 3, 0},
{1, 1, 1, 1, 1, 3, 1, 1},
{1, 1, 1, 1, 1, 3, 3, 1},
};
5. Given a matrix of 2D array of n rows and m coloumns. Print this matrix in ZIG-
ZAG fashion as shown in figure.
Example:
Input:
1 2 3
4 5 6
7 8 9
Output:
1 2 4 7 5 3 6 8 9
8. Print all possible subsets of the given array whose sum equal to given N.
example: Input: {1, 2, 3, 4, 5} N=6 Output: {1, 2, 3}, {1, 5}, {2, 4}
9. Reverse the words in the given String1 from the first occurrence of String2 in
String1 by maintaining white Spaces.
example: String1 = Input: This is a test String only String2 = st Output: This is a
only String test
10. calculate Maximum number of chocolates can eat and Number of wrappers left in
hand.
Money: Total money one has to spend.
Price: price per chocolate.
wrappers: minimum number of wrappers for exchange choco: number of chocolate for
wrappers.
Max visit: Maximum number of times one can visit the shop.(if zero consider it
infinite)
example: input: Money:40 Price:1 wrappers:3 choco:1 Max visit:1 Output: total
chocolate can eat: 53 wrappers left in hand:14
15. Given an array of values persons[], each represents the weight of the persons.
There will be infinite bikes available. Given a value K which represents the
maximum weight that a bike accommodates. Along with that one more condition, a bike
can carry two persons at a time. You need to find out the least number of times,
the bike trips are made.
16. Assume there exists infinite grid, you’re given initial position x, y. Inputs
will be movements either L or R or U or D. After n inputs, you need to give the
current position.
• Input:
• 4 5 //initial position x, y
• 9 //number of movements
• U L R R D D U L R //7 movements
• Output:
5 5
• Given a matrix NxN, you are initially in the 0, 0 position. The matrix is
filled with ones and zeros. Value “one” represents the path is available, while
“zero” represents the wall. You need to find the can you able to reach the (N-
1)x(N-1) index in the matrix. You can move only along the right and down directions
if there’s “one” available.
• Input:
• 5 //N value
• 1 0 1 0 0
• 1 1 1 1 1
• 0 0 0 1 0
• 1 0 1 1 1
• 0 1 1 0 1
• Output:
Yes
17. Given an array of integers, compute the maximum value for each integer in the
index, by either summing all the digits or multiplying all the digits. (Choose
which operation gives the maximum value)
• Input:
• 5
• 120 24 71 10 59
• Output:
• 3 8 8 1 45
Explanation: For index 0, the integer is 120. Summing the digits will give 3, and
whereas Multiplying the digits gives 0. Thus, maximum of this two is 3.
18. -1 represents ocean and 1 represents land find the number of islands in the
given matrix.
Input: n*n matrix
1 -1 -1 1
-1 1 -1 1
-1 -1 1 -1
-1 -1 -1 1
Output: 2 (two islands that I have
bold in matrix at 1, 1 and 2, 2)
19. Print all the possible subsets of array which adds up to give a sum.
Input: array{2, 3, 5, 8, 10}
sum=10
Output: {2, 3, 5}
{2, 8}
{10}
20. There is a circular queue of processes. Every time there will be certain no of
process skipped and a particular start position. Find the safe position.
Input: Number of process:5
Start position:3
Skip: 2nd
Output: 1 will be the safest position
(Logic: 1 2 3 4 5 starting from 3, 5th process will be skipped
1 2 3 4 5 process 2 will be skipped
1 2 3 4 5 process 4 will be skipped
1 2 3 4 5 process 3 will be skipped, so safest process is 1.
21. Given N. print the following snake pattern (say N = 4). condition: must not
use arrays ( 1D array or 2D array like Matrix ).
1 2 3 4
8 7 6 5
9 10 11 12
16 15 14 13
22. Given N. print the Latin Matrix (say N = 3). condition: must not use
strings(aka character literals), arrays (both 1D and 2D), inbuilt functions(like
rotate).
A B C
B C A
C A B
23. Given a number N. find the minimum count of numbers in which N can be
represented as a sum of numbers x1, x2, … xn. where xi is number whose digits are
0s and 1s.
example 1) i/p : N = 33
o/p : count = 3. 33( 11 + 11 + 11 )
some other possibilities of 33 is (11 + 11 + 10 + 1), (11 + 10 + 10 + 1 + 1 ),
(10 + 10 + 10 + 1 + 1 + 1)
25. Given an array of integers, write a program to re-arrange the array in the
given form.
1st_largest, 1st_smallest, 2nd_largest, 2nd_smallest, 3rd_largest ……. etc.
26. Sort the given elements in decending order based on the number of factors of
each element – Solution 1
27. Find whether the given number is palindrome or not. Don’t use arrays or strings
28. Reverse the given string keeping the position of special characters intact
29. Find the shortest path from one element to another element in a matrix using
right and down moves alone. The attached solution uses moves in all directions. –
Solution 4
30. Pattern
36. Many students will able to solve 3 problems in this round. So make sure you
stand apart from the crowd.Their vacancy is going to be 5 for a team. The
performance in this round could be taken as a tie breaker for round 3.
input : aaabbcc
output : abc
37. Evaluate the expression and sort and print the output. Getting the input is the
tricky part
Input:
Number of input : 4
2*3
2^2^2
35
3*1
Output:
3*1
2*3
2^2^2
35
38. Given a 6 blocks, of different height h1, …, h6 . Make 2 towers using 3 Blocks
for each tower in desired height h1, h2. Print the blocks to be used in ascending
order
Input:
1 2 5 4 3 6
height of tower: 6 15
Output :
1 2 3 & 4 5 6
39. Given a 5X5 chess board as input. 9 knights are placed in the board. Print
whether the configuration valid or Invalid.
40. Given a number, print all the code that can be formed with z={a=1, .., z=26}.
1123
{1, 1, 2, 3} = aabc
{11, 2, 3} = kbc
{1, 1, 23} = aaw
{11, 23} = kw
42. Given an array of integers of size n. Convert the array in such a way that if
next valid number is same as current number, double its value and replace the next
number with 0. After the modification, rearrange the array such that all 0’s are
shifted to the end.
Input : arr[] = {2, 2, 0, 4, 0, 8}
Output : 4 4 8 0 0 0
Input : arr[] = {0, 2, 2, 2, 0, 6, 6, 0, 0, 8}
Output : 4 2 12 8 0 0 0 0 0 0
44. Given an array A[] and a number x, check for pair in A[] with sum as x.
Eg : Input {1, 2, 4, 3, 5, 6}
SUM : 5
Output : 2 (1, 4) & (2, 3)
46. Given a text and a wildcard pattern, implement wildcard pattern matching
algorithm that finds if wildcard pattern is matched with text. The matching should
cover the entire text (not partial text).
The wildcard pattern can include the characters ‘?’ and ‘*’
‘?’ – matches any single character
‘*’ – Matches any sequence of characters (including the empty sequence)
Example:
Text = “baaabab”,
Pattern = “*****ba*****ab”,
output : true
Pattern = “baaa?ab”, output : true
Pattern = “ba*a?”, output : true
Pattern = “a*ab”, output : false
47. Given an input string and a dictionary of words, find out if the input string
can be segmented into a space-separated sequence of dictionary words. See following
examples for more details.
Consider the following dictionary
{ i, like, sam, sung, samsung, mobile, ice,
cream, icecream, man, go, mango}
Input: ilike
Output: Yes
The string can be segmented as "i like".
Input: ilikesamsung
Output: Yes
The string can be segmented as "i like samsung"
or "i like sam sung".<>
48. Print the following pattern
1
3 2
6 5 4
10 9 8 7
10 9 8 7
6 5 4
3 2
1
49. Given an array as input, The condition is if the number is repeated you must
add the number and put the next index value to 0. If the number is 0 print it at
the last.
Eg: arr[] = { 0, 2, 2, 2, 0, 6, 6, 0, 8}
Output: 4 2 12 8 0 0 0 0 0 .
49. Given two Strings s1 and s2, remove all the characters from s1 which is present
in s2.
Input: s1=”expErIence”, s2=”En”
output: s1=”exprIece”
50. Find the next greater element for each element in given array.
input: array[]={6, 3, 9, 10, 8, 2, 1, 15, 7};
output: {7, 5, 10, 15, 9, 3, 2, _, 8}
If we are solving this question using sorting, we need to use any O(nlogn) sorting
algorithm.
51. Print all distinct permutations of a given string with duplicate characters.
https://www.geeksforgeeks.org/distinct-permutations-string-set-2
53. Given an array with repeated numbers, Find the top three repeated numbers.
input: array[]={3, 4, 2, 3, 16, 3, 15, 16, 15, 15, 16, 2, 3}
output: 3, 16, 15
54. Given two dimensional matrix of integer and print the rectangle can be formed
using given indices and also find the sum of the elements in the rectangle
Input: mat[M][N] = {{1, 2, 3, 4, 6}, {5, 3, 8, 1, 2}, {4, 6, 7, 5, 5}, {2, 4, 8, 9,
4} };
index = (2, 0) and (3, 4)
Output:
Rectangle
4 6 7 5 5
2 4 8 9 4
sum 54
55. Find the result subtraction, multiplication, division of two integers using +
operator.
Input: 6 and 4
output:
addition 6+4 = 10, subtraction 6+(-4) = 2, multiplication = 24, division =
1
Input : -8 and -4
Output:
addition -8+(-4) = -12, subtraction (-8)+(-(-4)) = -4, multiplication = 32,
division = 2
56. Given a sentence of string, in that remove the palindrome words and print the
remaining.
Input:
He did a good deed
Output:
He good
Input:
Hari speaks malayalam
Output:
Hari speaks
57. Given two dates, find total number of days between them.
58. Let 1 represent ‘A’, 2 represents ‘B’, etc. Given a digit sequence, count the
number of possible decodings of the given digit sequence.
Examples:
Input: digits[] = “121”
Output: 3 // The possible decodings are “ABA”, “AU”, “LA”
Input: digits[] = “1234” Output: 3
// The possible decodings are “ABCD”, “LCD”, “AWD”
Ex I/p abcccccbba
O/p 8 (from a to a)
I/p aaaaaaaa
O/p 6
61. sort the array odd numbers in ascending and even numbers in descending.
I/p 5 8 11 6 2 1 7
O/p 1 5 7 11 8 6 2
62. It’s about anagram.i/p was array of strings .and a word was given to find
whether it has anagram in given array.
I/p catch, got, tiger, mat, eat, Pat, tap, tea
Word: ate
O/p eat, tea
63. array of numbers were given to find a number which has same sum of numbers in
it’s either side.
I/p 1, 2, 3, 7, 6
O/p 7(has 1+ 2+3 in left 6 in right)
65. prime factor – sort the array based on the minimum factor they have.
66. adding a digit to all the digits of a number eg digit=4, number = 2875, o/p=
612119
67. form the largest possible number using the array of numbers.
69. given a set of numbers, and a digit in each iteration, if the digit exists in
any of the numbers, remove its occurrences and ask for the next digit till the
list becomes empty.
Input : [ -1, 0, 3, 2 ]
[ 3, 4, 0, -1, 2 ]
Output : 4 is the extra element in array 3 at index 5
72. Find the least prime number that can be added with first array element that
makes them divisible by second array elements at respective index (check for prime
numbers under 1000, if exist return -1 as answer) & (Consider 1 as prime number)
Input : [ 20, 7 ]
[ 11, 5 ]
Output : [ 1, 3 ]
Explanation :
(20 + ?) % 11
( 7 + ?) % 5
73. Sort the array elements in descending order according to their frequency of
occurrence
Input : [ 2 2 3 4 5 12 2 3 3 3 12 ]
Output : 3 3 3 3 2 2 2 12 12 4 5
Explanation : 3 occurred 4 times, 2 occurred 3 times, 12 occurred 2 times, 4
occurred 1 time, 5 occurred 1 time
Input : [ 0 -1 2 1 0 ]
Output : 0 0 -1 1 2
Note : sort single occurrence elements in ascending order
74. Print true if second string is a substring of first string, else print false.
Note : * symbol can replace n number of characters
Input : Spoon Sp*n Output : TRUE
Zoho *o*o Output : TRUE
Man n* Output : FALSE
Subline line Output : TRUE
Input: 2 10 4 8
Output: 2 8
Input: 1 10 6 8 13 21
Output: 1 8 13 21
Input: 2
Output:
0 0
0 1
1 0
1 1
Input: 3
Output:
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
Input:
N=4
1 1 0 0
1 0 0 1
1 1 1 1
0 0 0 1
Output:
_ 1 0 0
_ 0 0 1
_ _ _ _
0 0 0 _
Output:
1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0
81. Print the total number of odd and even digits in the given number.
Output : ODD 4
EVEN 3
Size of Array : 8
Enter the elements : 2 5 1 6 2 6 7 10
OUTPUT :
Ex. INPUT :
Size of Array : 4
Enter the elements : 4 1 2 2
OUTPUT :
Ex. INPUT :
Size of Array : 1
Enter the elements : 1
OUTPUT :
No second maximum
OUTPUT :
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
Ex. INPUT : 7
OUTPUT :
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
84. Given a two dimensional array which consists of only 0’s and 1’s. Print the
matrix without duplication.
Ex. INPUT :
OUTPUT :
Unique Matrix :
1 0 1
1 1 0
1 1 1
85. Given an array of positive numbers. Print the numbers which have longest
continuous range.
Ex. INPUT :
OUTPUT :
1 2 3 4
Ex. INPUT :
OUTPUT :
1 2 3 4
6 7 8 9
OUTPUT :
1 2 3 4 5 7
INPUT :
OUTPUT :
1 2 4
88. Given an array of numbers and a number k. Print the maximum possible k digit
number which can be formed using given numbers.
INPUT :
OUTPUT :
974
INPUT :
OUTPUT :
98973
89. Given an array of numbers and a window of size k. Print the maximum of numbers
inside the window for each step as the window moves from the beginning of the
array.
INPUT :
OUTPUT :
5 5 5 8 8 9
90. Given a string, reverse only vowels in it; leaving rest of the string as it is.
Input : abcdef
Output : ebcdaf
91. Write a program to check if the given words are present in matrix given below.
The words can be left to right, top to bottom and the diagonals (in top to bottom
direction)
92. Write a program to form lines using given set of words. The line formation
should follow below rules.
i. Total characters in a single line excluding the space between the words and the
favorite character should not exceed the given number.
ii. Favorite character is case insensitive.
iii. Words should not be broken up. Complete words alone should be used in a single
line. A word should be used in one line only.
98. Given unsorted array find all combination of the element for a given sum. Order
should be maintained.
Input :
8 3 4 7 9 N=7
Output
{3 4 } {7}
99. Given an odd length word which should be printed from the middle of the word.
The output should be in the following pattern.
Example:
Input: PROGRAM
Output:
G
GR
GRA
GRAM
GRAMP
GRAMPR
GRAMPRO
100. It is a program to implement Least Recently Used (LRU) concept. Given a key,
if it is already existed then it should be marked as recently used otherwise a
value should be stored which is given as input and marked as recently used. The
capacity is to store only 10 key, value pairs. If the table is full and given a new
key; the key, value pair which is not recently used should be deleted which gives
feasibility to store the new key, value pair.
101. Given a few pairs of names in the order child, father. The input is a person
name and level number. The output should be the number of children in that
particular level for the person given.
Example:
Input:
[
{Ram, Syam},
{Akil, Syam},
{Nikil, Ram},
{Subhash, Ram},
{Karthik, Akil}
];
Syam 2
Output: 3 (Syam has Ram and Akil in level 1 and in level 2 he have Nikil, Subhash,
Karthik. So the answer is 3).
102. Given an array of positive integers. The output should be the number of
occurrences of each number.
Example:
Input: {2, 3, 2, 6, 1, 6, 2}
Output:
1 – 1
2 – 3
3 – 1
6 – 2
103. Given an array, find the minimum of all the greater numbers for each element
in the array.
Sample:
Array : {2, 3, 7, ¬1, 8, 5, 11}
Output:
{2¬>3, 3¬>5, 7¬>8, ¬1¬>2, 8¬>11, 5¬>7, 11¬>}
104. Find the largest sum contiguous subarray which should not have negative
numbers. We have to print the sum and the corresponding array elements which
brought up the
sum.
Sample:
Array : {¬2, 7, 5, ¬1, 3, 2, 9, ¬7}
Output:
Sum : 14
Elements : 3, 2, 9
105. Given a string, we have to reverse the string without changing the position of
punctuations and spaces.
106. Given a 2D grid of characters, you have to search for all the words in a
dictionary by
moving only along two directions, either right or down. Print the word if it
occurs.
Sample :
a z o l
n x h o
v y i v
o r s e
Dictionary = {van, zoho, love, are, is}
Output:
zoho
love
Is
107. Given a string, change the order of words in the string (last string should
come first).
Should use RECURSION
108. Input
arr: 23, 34, 45, 66, 1, 12
target: 1
Output
Founded at the index of: 4
Explaination:
1
66 12
45 23
34
find the mid element of the array then check the mid with the start index value
arr[i] <= arr[mid]
whether the mid value is greater than or equal to mid then, that part will be
[23,34,45,66] are one part of sorted element
or
if arr is [23,34,45,1,2,12] then [1,2,12] is other part of sorted element
then check the target value is under the sorted part of other
according to that change the starting and ending position.
109. INPUT:
Screen length = 20
Sentence = Today is wednesda
OUTPUT:
Today***is**wednesda
EXPLAINATION:
first we need to find the number of space in the sentence.
remaining screen length should be find by subtracting the screenLength -
sentence.length()
find the how many space need to add by (remainingScreenLength)/ spaceCount
when the addSpaceCount is odd the first space should add +1 than addSpaceValue
and other place add normal.
110. Find the frequence of the array without collection and inbuilt method in java.
111. Write a program that will print the sum of diagonal elements of a 10X10
matrix. The program will take a total of 100 numbers as input (10 numbers will be
input per line and each number will be separated by a space).
Example 1
Input: 1 2 3 4 5 6 7 8 9 0
0 1 2 3 4 5 6 7 8 0
3 4 5 6 7 8 9 6 4 0
2 3 4 5 6 7 8 9 3 2
3 4 5 6 7 4 3 2 1 3
3 4 5 6 2 4 4 2 4 6
2 3 4 6 2 4 6 2 3 5
2 3 5 6 2 4 6 2 3 5
2 4 6 2 1 4 3 3 5 2
3 3 5 2 4 6 2 1 4 6
Output: 42
Example 2
Input: 1 22 33 44 55 66 77 88 99 100
100 1 88 77 66 55 44 33 22 11
88 88 1 66 55 44 33 22 11 100
88 77 66 1 44 33 22 11 100 99
77 66 55 44 1 22 11 88 99 100
66 55 44 33 22 1 77 88 99 100
44 33 22 11 100 99 1 77 66 55
33 22 11 100 99 88 77 1 55 44
22 11 100 99 88 77 66 55 1 33
100 11 22 33 44 55 99 88 77 1
Output: 10
112. Input:6
Output
1
2 4
3 5 7
6 8 10 12
9 11 13 15 17
14 16 18 20 22 24
113. Input: 5
Output:
1 2 3 4 5
2 3 4 5 1
3 4 5 1 2
4 5 1 2 3
5 1 2 3 4
114. Input: 5
Output:
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
Given two version strings, version1 and version2, compare them. A version string
consists of revisions separated by dots '.'. The value of the revision is its
integer conversion ignoring leading zeros.
Example 1:
Output: -1
Explanation:
version1's second revision is "2" and version2's second revision is "10": 2 < 10,
so version1 < version2.
Example 2:
Input: version1 = "1.01", version2 = "1.001"
Output: 0
Explanation:
Ignoring leading zeroes, both "01" and "001" represent the same integer "1".