Server Side Programming Articles

Page 1307 of 2109

Find All Good Strings in C++

Arnab Chakraborty
Arnab Chakraborty
Updated on 11-Mar-2026 528 Views

Suppose we have two strings s1 and s2. The size of these strings is n, and we also have another string called evil. We have to find the number of good strings.A string is called good when its size is n, it is alphabetically greater than or equal to s1, it is alphabetically smaller than or equal to s2, and it has no evil as a substring. The answer may be very large, so return the answer modulo 10^9 + 7.So, if the input is like n = 2, s1 = "bb", s2 = "db", evil = "a", then the ...

Read More

Minimum Time Difference in C++

Arnab Chakraborty
Arnab Chakraborty
Updated on 11-Mar-2026 524 Views

Suppose we have a list of 24-hour clock time points in "Hour:Minutes" format, we have to find the minimum minutes difference between any two time points in the list. So if the input is like [“12:30”, ”15:17”], so this will return 167.To solve this, we will follow these steps −Define an array called ok of size 24*60 + 1, and initially all are false.n := size of tpfor i in range 0 to n – 1hr := the hour part from the timemin := minute part of the stringtime := hr * 60 + minif ok[time] is true, then return ...

Read More

Optimal Division in C++

Arnab Chakraborty
Arnab Chakraborty
Updated on 11-Mar-2026 375 Views

Suppose we have a list of positive integers; the adjacent integers will perform the float division. So for example, [2, 3, 4] -> 2 / 3 / 4. Now, we can add any number of parenthesis at any position to change the priority of these operations. We should find out how to add parenthesis to get the maximum result, we have to find the corresponding expression in string format. Our expression should NOT contain redundant parenthesis. So if the input is like [1000, 100, 10, 2], then the result will be “1000/(100/10/2)”.To solve this, we will follow these steps −n ...

Read More

Next Greater Element III in C++

Arnab Chakraborty
Arnab Chakraborty
Updated on 11-Mar-2026 331 Views

Suppose we have a positive 32-bit integer n, we need to find the smallest 32-bit integer which has exactly the same digits existing in the integer n and is greater in value than n. If we have no such positive 32-bit integer number, then return -1.So if the number is 213, then the result will be 231.To solve this, we will follow these steps −s := n as string, sz := size of s, ok := falsefor i in range sz – 2 to 0if s[i] < s[i + 1], then ok := true and break the loopif of is ...

Read More

Array Nesting in C++

Arnab Chakraborty
Arnab Chakraborty
Updated on 11-Mar-2026 658 Views

Suppose we have a zero-indexed array A of length N that contains all integers from 0 to N-1. We have to find and return the longest length of set S, where S[i] = {A[i], A[A[i]], A[A[A[i]]], ... } subjected to the rule below. Now consider the first element in S starts with the selection of element A[i] of index = i, the next element in S should be A[A[i]], and then A[A[A[i]]]… By that analogy, we stop adding right before a duplicate element occurs in S. So if the array is like A = [5, 4, 0, 3, 1, 6, ...

Read More

Valid Triangle Number in C++

Arnab Chakraborty
Arnab Chakraborty
Updated on 11-Mar-2026 692 Views

Suppose we have an array consists of non-negative integers, our task is to count the number of triplets chosen from the array that can make triangles if we take them as side lengths of a triangle. So if the input is like [2, 2, 3, 4], then the result will be 3 as [2, 3, 4] using first 2, [2, 3, 4] using second 2, and [2, 2, 3].To solve this, we will follow these steps −ret := 0, n := size of nums, sort numsfor i in range n – 1 down to 0right := i – 1, left ...

Read More

Split Array into Consecutive Subsequences in C++

Arnab Chakraborty
Arnab Chakraborty
Updated on 11-Mar-2026 539 Views

Suppose we have an array nums that is sorted in ascending order. We have to return true if and only if we can split it into 1 or more subsequences such that each subsequence consists of consecutive integers and whose length at least 3. So if the input is like [1, 2, 3, 3, 4, 4, 5, 5], then the output will be True, as we have two consecutive sequences. These are [1, 2, 3, 4, 5] and [3, 4, 5].To solve this, we will follow these steps −Make a map m and store the frequency of nums into m, ...

Read More

Monotone Increasing Digits in C++

Arnab Chakraborty
Arnab Chakraborty
Updated on 11-Mar-2026 631 Views

Suppose we have a non-negative integer N, we have to find the largest number that is less than or equal to N with monotone increasing digits. We know that an integer has monotone increasing digits if and only if each pair of adjacent digits’ x and y satisfy x = s[i – 1]increase i by 1if i < nwhile i > 0 and s[i – 1] > s[i], thendecrease i by 1decrease s[i] by 1for j in range i + 1 to ns[j] := ‘9’return s as numberLet us see the following implementation to get better understanding −Example#include using ...

Read More

Reach a Number in C++

Arnab Chakraborty
Arnab Chakraborty
Updated on 11-Mar-2026 301 Views

Suppose you are standing at position 0 on an infinite number line. Now there is a goal at position target. Here in each move, you can either go to the left side or the right side. During the n-th move (starting from 1), you take n steps. We have to find the minimum number of steps required to reach the destination. So if the input is like target = 3, then we need 2 steps. From 0 to 1, from 1 to 3.To solve this, we will follow these steps −target := |target|, cnt := 0while target > 0, decrease ...

Read More

Find Duplicate Subtrees in C++

Arnab Chakraborty
Arnab Chakraborty
Updated on 11-Mar-2026 202 Views

Suppose we have a binary tree. We have to find all duplicate subtrees. So for each kind of duplicate subtrees, we have to return the root node of any one of them. So suppose we have a tree like −The duplicate subtrees are −To solve this, we will follow these steps −Create an array ret, make a map mDefine a recursive method solve(). This will take node as input. This works as −if node is null, then return -1x := value of node as string, then concatenate “#” with it.left := solve(left of node), right := solve(right of node)x := ...

Read More
Showing 13061–13070 of 21,090 articles
Advertisements