Compare Version Numbers

MediumTwo PointersString

Solution

export function compareVersion(version1: string, version2: string): number {
  function convertVersion(version: string) {
    return version.split('.').map((v) => parseInt(v));
  }
 
  const v1 = convertVersion(version1);
  const v2 = convertVersion(version2);
  for (let i = 0; i < Math.max(v1.length, v2.length); i++) {
    const revision1 = v1[i] ?? 0;
    const revision2 = v2[i] ?? 0;
    if (revision1 !== revision2) {
      return revision1 < revision2 ? -1 : 1;
    }
  }
  return 0;
}