Back to all solutions
#3043 - Find the Length of the Longest Common Prefix
Problem Description
You are given two arrays with positive integers arr1 and arr2.
A prefix of a positive integer is an integer formed by one or more of its digits, starting from its leftmost digit. For example, 123 is a prefix of the integer 12345, while 234 is not.
A common prefix of two integers a and b is an integer c, such that c is a prefix of both a and b. For example, 5655359 and 56554 have common prefixes 565 and 5655 while 1223 and 43456 do not have a common prefix.
You need to find the length of the longest common prefix between all pairs of integers (x, y) such that x belongs to arr1 and y belongs to arr2.
Return the length of the longest common prefix among all pairs. If no common prefix exists among them, return 0.
Solution
/**
* @param {number[]} arr1
* @param {number[]} arr2
* @return {number}
*/
var longestCommonPrefix = function(arr1, arr2) {
const prefixSet = new Set();
let result = 0;
for (const num of arr1) {
let prefix = num;
while (prefix > 0) {
prefixSet.add(prefix);
prefix = Math.floor(prefix / 10);
}
}
for (const num of arr2) {
let prefix = num;
while (prefix > 0) {
if (prefixSet.has(prefix)) {
result = Math.max(result, String(prefix).length);
}
prefix = Math.floor(prefix / 10);
}
}
return result;
};