Suppose we have an array of numbers; we have to find a number B which is the divisor of all except for exactly one element in the given array. We have to keep in mind that the GCD of all the elements is not 1.So, if the input is like {8, 16, 4, 24}, then the output will be 8 as this is the divisor of all except 4.To solve this, we will follow these steps −n := size of arrayif n is same as 1, thenreturn(array[0] + 1)prefix := an array of size n, and fill with 0suffix := ... Read More
Suppose we have an array of size N; we have to find an element which divides the array into two different sub-arrays with equal product. Return -1 if no such partition is possible.So, if the input is like [2, 5, 3, 2, 5], then the output will be 3 then subarrays are: {2, 5} and {2, 5}To solve this, we will follow these steps −n := size of arraymultiply_pref := a new listinsert array[0] at the end of multiply_preffor i in range 1 to n, doinsert multiply_pref[i-1]*array[i] at the end of multiply_prefmultiply_suff := a list of size n, and fill ... Read More
Suppose we have an array of positive numbers; we have to check a point/item up to which items create a strictly decreasing sequence first followed by a sequence of strictly increasing integers. These are the following properties: We have to keep in mind that the sequences must be of minimum length 2Also, we have taken care that the last value of the decreasing sequence is the first value of the increasing sequence.So, if the input is like {5, 4, 3, 4}, then the output will be 3, as {5, 4, 3} is strictly decreasing then {3, 4} is strictly increasing.To ... Read More
Suppose we have an array of words, we have to find any alphabetical order in the English alphabet so that the given words can be considered sorted in ascending order, if there is any such order exists, otherwise return "impossible".So, if the input is like words = ["efgh", "wxyz"], then the output will be zyxvutsrqponmlkjihgfewdcbaTo solve this, we will follow these steps −ALPHABET := 26n := size of vif n is same as 1, then −display "abcdefghijklmnopqrstuvwxyz"returnDefine an array adj of size ALPHABETDefine an array in of size ALPHABET and fill with 0pre := v[0]for initialize i := 1, when ... Read More
Suppose we have a character mapping as follows, here each digit, from 1 to 9, maps to few characters.1 -> ['A', 'B', 'C'] 2 -> ['D', 'E', 'F'] 3 -> ['G', 'H', 'I'] 4 -> ['J', 'K', 'L'] 5 -> ['M', 'N', 'O'] 6 -> ['P', 'Q', 'R'] 7 -> ['S', 'T', 'U'] 8 -> ['V', 'W', 'X'] 9 -> ['Y', 'Z']If we have a number, we have to change its digits with corresponding characters in given mapping list and show all generated strings. We should consider same character for every occurrence of a digit in the number. The given ... Read More
Suppose we have a binary 2D matrix, now we have to find the beginning point and terminating point of all rectangles filled with 0s. We have to keep in mind that rectangles are separated and do not touch each other however they can touch the array boundary. A rectangle with only single element is also possible.So, if the input is like −10111011101111101100110110011011011101000011100011011101then the output will be [[0, 1, 0, 1], [0, 5, 0, 5], [1, 2, 1, 2], [2, 3, 2, 4], [3, 1, 5, 1], [3, 4, 6, 5], [5, 3, 6, 5], [7, 1, 7, 1], [7, 5, ... Read More
Suppose we have one undirected graph and a set of vertices; we have to find all reachable nodes from every vertex present in the given set.So, if the input is likethen the output will be [1, 2, 3] and [4, 5] as these are two connected components.To solve this, we will follow these steps −nodes := number of nodes in the graphDefine an array visited of size: nodes+1. And fill with 0Define one map mcomp_sum := 0for initialize i := 0, when i < n, update (increase i by 1), do −u := arr[i]if visited[u] is false, then −(increase comp_sum ... Read More
Suppose we have a string; we have to find all the palindromic sub-strings from that string. Here aa and aa are considered as two sub-strings, not one.So, if the input is like redivider, then the output will be ['r', 'e', 'd', 'i', 'v', 'ivi', 'divid', 'edivide', 'redivider', 'i', 'd', 'e', 'r']To solve this, we will follow these steps −v := a new listpos := 0.0while pos < size of s, dorad := pos - (pos as integer)while (pos + rad) < size of s and (pos - rad) >= 0 and (s[integer of (pos - rad)] is same as s[integer ... Read More
Suppose we have an array A of numbers, we have to find all indices of this array so that after deleting the ith element from the array, the array will be a good array. We have to keep in mind that −Good array is an array with an element that equals to the sum of all other elements.1-based indexing will be used here.So, if the input is like [10, 4, 6, 2], then the output will be [1, 4] as when we remove A[1], the array will look like [4, 6, 2] and it is good, as 6 = 4+2. ... Read More
Suppose we have a string with lowercase ASCII characters, we have to find all distinct continuous palindromic substrings of it.So, if the input is like "bddaaa", then the output will be [a, aa, aaa, b, d, dd]To solve this, we will follow these steps −m := a new mapn := size of smatrix := make two rows of n number of 0ss := "@" concatenate s concatenate "#"for j in range 0 to 1, dotemp := 0matrix[j, 0] := 0i := 1while i