Program to check old and new version numbering are correct or not in Python

Version comparison is a common task in software development. We need to compare two version strings in the format "major.minor.patch" to determine if the newer version is actually newer than the older one.

So, if the input is like older = "7.2.2", newer = "7.3.1", then the output will be True because 7.3.1 is newer than 7.2.2.

Algorithm

To solve this problem, we will follow these steps ?

  • Split both version strings into lists of major, minor, patch numbers
  • Compare each component (major, minor, patch) from left to right
  • If newer component is greater, return True
  • If newer component is smaller, return False
  • If all components are equal, return False (not newer)

Example

class Solution:
    def solve(self, older, newer):
        older = older.split('.')
        newer = newer.split('.')
        
        for o, n in zip(older, newer):
            if int(n) > int(o):
                return True
            elif int(n) < int(o):
                return False
        return False

# Test the solution
ob = Solution()
older = "7.2.2"
newer = "7.3.1"
print(ob.solve(older, newer))
True

How It Works

The algorithm splits each version string by the dot separator and compares corresponding components:

  • For "7.2.2" vs "7.3.1": major (7=7), minor (2<3) ? returns True
  • For "7.2.2" vs "7.1.5": major (7=7), minor (2>1) ? returns False
  • For "7.2.2" vs "7.2.2": all equal ? returns False

Alternative Approach

Here's a more concise solution using list comprehension ?

def is_newer_version(older, newer):
    older_parts = [int(x) for x in older.split('.')]
    newer_parts = [int(x) for x in newer.split('.')]
    
    for old, new in zip(older_parts, newer_parts):
        if new > old:
            return True
        elif new < old:
            return False
    return False

# Test with multiple examples
test_cases = [
    ("7.2.2", "7.3.1"),
    ("7.2.2", "7.1.5"), 
    ("7.2.2", "7.2.2"),
    ("1.0.0", "2.0.0")
]

for older, newer in test_cases:
    result = is_newer_version(older, newer)
    print(f"{newer} is newer than {older}: {result}")
7.3.1 is newer than 7.2.2: True
7.1.5 is newer than 7.2.2: False
7.2.2 is newer than 7.2.2: False
2.0.0 is newer than 1.0.0: True

Conclusion

Version comparison works by splitting version strings and comparing each component from left to right. The function returns True only when the newer version has a higher component value at the first differing position.

Updated on: 2026-03-25T10:56:49+05:30

223 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements