Check if a Binary Tree is a BST in Python

Arnab Chakraborty
Updated on 06-Oct-2020 05:59:22

695 Views

Suppose we have binary tree; we have to check whether it is a binary search tree or not. As we know a BST has following properties −all nodes on its left subtree is smaller than current node valueall nodes on its right subtree is larger than current node valuethese properties hold recursively for all nodesSo, if the input is likethen the output will be TrueTo solve this, we will follow these steps −x := a list of inorder traversal sequence of tree elementsif x is sorted, thenreturn truereturn falseLet us see the following implementation to get better understanding −Example Live Democlass ... Read More

Remove Nodes from BST Not in Range in Python

Arnab Chakraborty
Updated on 06-Oct-2020 05:56:14

219 Views

Suppose we have a BST, an two values low and high, we have to delete all nodes that are not between [low, high] (inclusive).So, if the input is likelow = 7 high = 10, then the output will beTo solve this, we will follow these steps −Define a function solve() . This will take root, low, highif root is null, thenreturnif low > data of root, thenreturn solve(right of root, low, high)if high < data of root, thenreturn solve(left of root, low, high)right of root := solve(right of root, low, high)left of root := solve(left of root, low, high)return rootLet ... Read More

Check Balanced and Well-Formed Brackets in Python

Arnab Chakraborty
Updated on 06-Oct-2020 05:53:03

304 Views

Suppose we have a string of brackets (round, curly, and square), we have to check whether the brackets are balanced (well-formed) or not.So, if the input is like s = "([()()]{[]})()", then the output will be TrueTo solve this, we will follow these steps −stack := a new listd := a hash map with key-value pairs ('}', '{'), (')', '('), (']', '[')for each character c in s, doif c is any one of '}])', thenif stack is empty or top of stack is not same as d[c], thenreturn Falsepop from stackotherwise, push c into stackreturn true when stack is empty, ... Read More

Check Whether Parentheses are Balanced in Python

Arnab Chakraborty
Updated on 06-Oct-2020 05:49:35

289 Views

Suppose we have a string s consisting of parenthesis "(" and ")". We have to check whether the parentheses are balanced or not.So, if the input is like s = "(()())(())", then the output will be TrueTo solve this, we will follow these steps −num_open := 0for each character c in s, doif c is same as ')', thenif num_open < 0, thennum_open := num_open - 1otherwise, return Falseotherwise, num_open := num_open + 1return inverse of num_openLet us see the following implementation to get better understanding −Example Live Democlass Solution:    def solve(self, s):       num_open = 0   ... Read More

Find Contiguous Intervals of a Unique Array in Python

Arnab Chakraborty
Updated on 05-Oct-2020 14:58:01

718 Views

Suppose we have a list of unique numbers called nums. We have to find a sorted 2D matrix of numbers where each list represents an inclusive interval summarizing number that are contiguous in nums.So, if the input is like nums = [10, 11, 12, 15, 16, 17, 28, 30], then the output will be [[10, 12], [15, 17], [28, 28], [30, 30]], as in the list [10 to 12], [15 to 17] are contiguous, and 28 and 30 are there, they are represented as [28 to 28] and [30 to 30].To solve this, we will follow these steps−sort the list ... Read More

Check if String Contains Consecutively Descending Substring in Python

Arnab Chakraborty
Updated on 05-Oct-2020 14:42:50

338 Views

Suppose we have a string s with some digits, we have to check whether it contains consecutively descending integers or not.So, if the input is like s = "99989796", then the output will be True, as this string is holding [99, 98, 97, 96]To solve this, we will follow these steps−Define a function helper() . This will take pos, prev_numif pos is same as n, thenreturn Truenum_digits := digit count of prev_numfor i in range num_digits - 1 to num_digits, doif s[from index pos to pos+i-1] and numeric form of s[from index pos to pos+i-1]) is same as prev_num - ... Read More

Check City Connectivity in Python

Arnab Chakraborty
Updated on 05-Oct-2020 14:25:52

834 Views

Suppose we have n cities represented as a number in range [0, n) and we also have a list of one-way roads that connects one city to another. We have to check whether we can reach any city from any city.So, if the input is like n = 3, roads = [[0, 1], [0, 2], [1, 0], [1, 2], [2, 0], [2, 1]], then the output will be True, as You can go 0 to 1 and 1 to 0To solve this, we will follow these steps−Define a function dfs() . This will take i, visited, gmark i as visitedfor ... Read More

Check Whether a Binary Tree is Complete in Python

Arnab Chakraborty
Updated on 05-Oct-2020 14:17:57

487 Views

Suppose we have a binary tree; we have to check whether this is a complete binary tree or not. As we know in a complete binary tree the levels are filled with nodes except possibly the last and all nodes in the last level are as far left as possible.So, if the input is likethen the output will be TrueTo solve this, we will follow these steps−q := a double ended queueinsert root at the end of qflag := Falsewhile q is not empty, dotemp := element after deleting from left of qif temp is null, thenflag := Trueotherwise when ... Read More

Count Minimum Operations to Flip Columns in Python

Arnab Chakraborty
Updated on 05-Oct-2020 14:06:56

242 Views

Suppose we have a matrix M and a target matrix T with the same number of rows and columns. Now suppose an operation where we flip a particular column in matrix so that all 1s will be converted to 0s and all 0s will be converted to 1s. So if we can reorder the matrix rows for free, find the minimum number of operations required to turn M into T. If there is no solution, then return -1.So, if the input is like M =001011T =011011then the output will be 1, as first reorder the rows to−001110And then flip column ... Read More

Count Operations to Change All Cells to Same Color in Python

Arnab Chakraborty
Updated on 05-Oct-2020 13:53:12

257 Views

Suppose we have a two-dimensional matrix M. Now in each cell contains a value that represents its color, and adjacent cells (top, bottom, left, right) with the same color are to be grouped together. Now, consider an operation where we set all cells in one group to some color. Then finally find the minimum number of operations required so that every cell has the same color. And when the color is transformed, it cannot be set again.So, if the input is like222211112321Then the output will be 2, as We can fill the group with 2 as color into 1 and ... Read More

Advertisements