P21849 [GeeksforGeeks] Longest common substring value of two numbers3806
普及
题目描述

Given two integers N and M. Find the longest common contiguous subset in binary representation of both the numbers and print its decimal value.
Example 1:
Input: N = 10, M = 11
Output: 5
Explanation: 10 in Binary is "1010" and
11 in Binary is "1011". The longest common
contiguous subset is "101" which has a
decimal value of 5.
​Example 2:
Input: N = 8, M = 16
Output: 8
Explanation: 8 in Binary is "1000" and
16 in Binary is "10000". The longest common
contiguous subset is "1000" which has a
decimal value of 8.
Your Task:
You don't need to read input or print anything. Your task is to complete the function longestCommon() which takes two integers N and M as inputs and returns the Decimal representation of the longest common contiguous subset in the Binary representation of N and M.
Note: If there's a tie in the length of the longest common contiguous subset, return the one with the highest decimal value among them.
Expected Time Complexity: O((log(max (N, M))^{3}).
Expected Auxiliary Space: O((log(max (N, M))^{2}).
Constraints:
1<=N,M<=10^{18}

输入格式

见题面

输出格式

见题面

样例输入
N = 10, M = 11
样例输出
5