← Strings

Valid IP Address

Medium
Python
def is_valid_ip(s):
    parts=s.split('.')
    if len(parts)!=4: return False
    for p in parts:
        if not p or not p.isdigit(): return False
        if p[0]=='0' and len(p)>1: return False
        if int(p)>255: return False
    return True
Java
public boolean isValidIP(String s){
    String[] parts=s.split("\\.");
    if(parts.length!=4) return false;
    for(String p:parts){
        if(p.isEmpty()||!p.matches("[0-9]+")) return false;
        if(p.charAt(0)=='0'&&p.length()>1) return false;
        if(Integer.parseInt(p)>255) return false;
    } return true;
}

Key Insight

Python split('.') literal. Java regex dot means 'any char' — must escape.

Python → Java Differences

  • split('.') vs split('\\\\.')
  • isdigit() vs matches()
  • Java dot must be escaped in regex
Python
def is_valid_ip(s):
    parts=s.split('.')
    if len(parts)!=4: return False
    for p in parts:
        if not p or not p.isdigit(): return False
        if p[0]=='0' and len(p)>1: return False
        if int(p)>255: return False
    return True
Java
public boolean isValidIP(String s){
    String[] parts=s.split("\\.");
    if(parts.length!=4) return false;
    for(String p:parts){
        if(p.isEmpty()||!p.matches("[0-9]+")) return false;
        if(p.charAt(0)=='0'&&p.length()>1) return false;
        if(Integer.parseInt(p)>255) return false;
    } return true;
}

Algorithm Steps

1. Split by dot
2. Check 4 parts
3. Validate 0-255