Find All Palindromic Substrings of a Given String in Python

Arnab Chakraborty
Updated on 28-Aug-2020 09:09:34

147 Views

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

Find All Good Indices in the Given Array in Python

Arnab Chakraborty
Updated on 28-Aug-2020 08:59:25

562 Views

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

Find All Distinct Palindromic Substrings of a Given String in Python

Arnab Chakraborty
Updated on 28-Aug-2020 08:55:03

425 Views

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

Find a String with Lexicographically Greater Characters in Python

Arnab Chakraborty
Updated on 28-Aug-2020 08:46:39

229 Views

Suppose we have a number n; we have to check a lower case stringof length n+1 so that the character at any position should be lexicographically bigger than its immediate next character.So, if the input is like 15, then the output will be ponmlkjihgfedcba.To solve this, we will follow these steps −temp_str := blank stringextra := n mod 26if extra >= 1, thenfor i in range 26 -(extra + 1) to 25, dotemp_str := temp_str + str[i]count := n / 26 (integer division)for i in range 1 to count + 1, dofor j in range 0 to 25, dotemp_str := ... Read More

Find String in Lexicographic Order Between Two Strings in Python

Arnab Chakraborty
Updated on 28-Aug-2020 08:43:02

287 Views

Suppose we have two strings S and T, we have to check whether a string of the same length which is lexicographically bigger than S and smaller than T. We have to return -1 if no such string is available. We have to keep in mind that S = S1S2… Sn is termed to be lexicographically less than T = T1T2… Tn, provided there exists an i, so that S1= T1, S2= T2, … Si – 1= Ti – 1, Si < Ti.So, if the input is like S = "bbb" and T = "ddd", then the output will be ... Read More

Find Sorted Subsequence of Size 3 in Linear Time in Python

Arnab Chakraborty
Updated on 28-Aug-2020 08:38:31

213 Views

Suppose we have an array with N numbers, we have to check whether the 3 elements such that b[i]< b[j] < b[k] and i < j < k in linear (O(n)) time. If there are multiple such triplets, then print any one of them.So, if the input is like [13, 12, 11, 6, 7, 3, 31], then the output will be [6, 7, 31]To solve this, we will follow these steps −n := size of Amaximum := n-1, minimum := 0smaller := an array of size 1000, and fill with 0smaller[0] := -1for i in range 1 to n, doif ... Read More

Find Positive Number m for Maximum GCD in Python

Arnab Chakraborty
Updated on 28-Aug-2020 08:32:45

161 Views

Suppose we have a number N, we have to find a positive number M such that gcd(N^M, N&M) is as large as possible and m < n. We will also return the largest gcd thus obtained.So, if the input is like 20, then the output will be 31To solve this, we will follow these steps −if bit_count(n) is same as 0, thenfor i in range 2 to int(square root of (n)) + 1, doif n mod i is same as 0, thenreturn int(n / i)otherwise, val := 0p :=dupn := nwhile n is non-zero, doif (n AND 1) is same ... Read More

Find a Permutation Causing Worst Case of Merge Sort in C++

Arnab Chakraborty
Updated on 28-Aug-2020 08:25:54

161 Views

Suppose we have a set of elements; we have to find which permutation of these elements would result in worst case of Merge Sort? As we know asymptotically, merge sort always consumes O (n log n) time, but some cases need more comparisons and consumes more time. Here we have to find a permutation of input elements that will require higher number of comparisons when sorted implementing a typical Merge Sort algorithm.So, if the input is like [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26] , then the output will be [11, ... Read More

Find a Pair with Given Sum in a Balanced BST in C++

Arnab Chakraborty
Updated on 28-Aug-2020 08:20:06

140 Views

Suppose we have a balanced binary search tree and a target sum, we have to define a method that checks whether it is a pair with sum equals to target sum, or not. In this case. We have to keep in mind that the Binary Search Tree is immutable.So, if the input is likethen the output will be (9 + 26 = 35)To solve this, we will follow these steps −Define stacks s1, s2done1 := false, done2 := falseval1 := 0, val2 := 0curr1 := root, curr2 := rootinfinite loop, do −while done1 is false, do −if curr1 is not ... Read More

Find Number for Minimum Sum with XOR in Python

Arnab Chakraborty
Updated on 28-Aug-2020 08:12:07

131 Views

Suppose we have an array A, we have to find a number X such that (A[0] XOR X) + (A[1] XOR X) + … + A[n – 1] XOR X is as minimum as possible.So, if the input is like [3, 4, 5, 6, 7], then the output will be X = 7 , Sum = 10To solve this, we will follow these steps −Define a function search_res() . This will take arr, nelement := arr[0]for i in range 0 to size of arr, doif arr[i] > element, thenelement := arr[i]p := integer of (log of element base 2) + ... Read More

Advertisements