Suppose we have a lowercase string; we have to check whether we can split the string from middle which will give two halves having at least one-character difference between two sides. It may hold different characters or different frequency of each character. If the string is odd length string, then ignore the middle element and check for the remaining elements.So, if the input is like s = "helloohekk", then the output will be True as "helloohekk" so left part is "hello" right part is "ohekk" left and right are different.To solve this, we will follow these steps −left_freq := an ... Read More
Suppose we have an array of numbers called nums. We have to check whether there exists any subset of the nums whose bitwise AND is a power of two or not.So, if the input is like nums = [22, 25, 9], then the output will be True, as a subset {22, 9} the binary form is {10110, 1001} the AND of these two is 10000 = 16 which is power of 2.To solve this, we will follow these steps −MAX := 32 considering there are 32 bits numbers at maxDefine a function solve() . This will take numsif size of ... Read More
Suppose we have a positive number n, we have to check whether in the bit pattern of the given number n the count of continuous 1s are increasing from left to right or not.So, if the input is like n = 1775, then the output will be True, as the binary representation of n is 11011101111, so number of continuous 1s are [2, 3, 4] which are increasingTo solve this, we will follow these steps −bits_pattern := a new list of bits of nbit_count := size of bits_patternp_cnt := 0, c_cnt := 0i := 0while i < bit_count, doif bits_pattern[i] ... Read More
Suppose we have two numbers x and y and a given range (left, right). We have to check whether all bits in range left to right in both the given numbers are complement of each other or not. We have to keep in mind that from right to left, so the least significant bit is considered to be at first position.So, if the input is like x = 41 y = 54 left = 2 right = 5, then the output will be True, as binary representation of 41 and 54 are 101001 and 110110. The bits in range 2 ... Read More
Suppose we have an array n that represents a binary representation of any number. We have to check whether its binary representation is divisible by three or not by using Deterministic Finite Automata DFA.So, if the input is like n = [1, 1, 0, 0] (binary of 12), then the output will be True.To solve this, we can construct DFA like below −The approach is simple when a number is divisible by 3 then the remainder will be 0, if not then remainder will be 1 or 2. There are three states for these three remainders. The initial state is ... Read More
Suppose we have a number n. We have to check whether the binary representation of n is palindrome or not.So, if the input is like n = 9, then the output will be True as binary representation of 9 is 1001, which is palindrome.To solve this, we will follow these steps −ans := 0while num > 0, doans := ans * 2if num is odd, thenans := ans XOR 1num := num / 2return ansLet us see the following implementation to get better understanding −Example Live Demodef reverse_binary(num) : ans = 0 while (num > 0) : ... Read More
Suppose we have a list of numbers called nums and also a positive value K. We can perform any of these three operations on nums −Make one number negative, Add index (start from index 1) of the number to the number itselfSubtract index of the number from the number itself.Finally, we have to check whether the given array can be transformed as the sum of the array becomes k, by performing these operations only once on each element.So, if the input is like nums = [1, 2, 3, 7] k = 8, then the output will be True as we ... Read More
Suppose we have an array of unsorted numbers called nums. We have to check whether it contains contiguous values or not, it should support negative numbers also.So, if the input is like nums = [-3, 5, 1, -2, -1, 0, 2, 4, 3], then the output will be true as the elements are 3, 4, 5, 6, 7, 8.To solve this, we will follow these steps −size := size of numsinit_term := inffor i in range 0 to size, doif nums[i] < init_term, theninit_term := nums[i]ap_sum := quotient of ((size * (2 * init_term + (size - 1) * 1)) ... Read More
Suppose, we are given a set of intervals that consists of values (time1, time2) where time1 represents the starting time, and time2 represents the ending time of an event. Our task is to check whether any of these intervals overlap any other interval in this set. If any of the intervals overlap, we return the result as True, otherwise we return False.So, if the input is like [(4, 7), (5, 11), (7, 11), (5, 8)] then the output will be True.To solve this, we will follow these steps −sort the list inputArrfor i in range 1 to size of inputArr, ... Read More
Suppose, we have two positive integers n and m, such that 2 ≤ n ≤ 1018 and 2 ≤ m ≤ n. Our goal is to find out if there are any all-digit-permutations of the number n; so that it is equal to some power of m. If there is one, we state that there exists an all-digit-permutation of n that is equal to a power of m, otherwise we state the previous statement as false.For example, we are given n = 7182 and m = 12. As 1728 is an all-digit-permutation of 7182 and 1728 = 12^3, we state ... Read More