Description

Given a valid (IPv4) IP address, return a defanged version of that IP address.

A defanged IP address replaces every period "." with "[.]".

Example 1:

  • Input: address = “1.1.1.1”
  • Output: “1[.]1[.]1[.]1”

Example 2:

  • Input: address = “255.100.50.0”
  • Output: “255[.]100[.]50[.]0”

Constraints:

  • The given address is a valid IPv4 address.

Submitted Code

class Solution:
    def defangIPaddr(self, address: str) -> str:
        result = []
        for c in address:
            if c == ".":
                result.append("[.]")
            else:
                result.append(c)
        return "".join(result)

Runtime: 29 ms | Beats 93.39%
Memory: 17.10 MB | Beats 99.65%

replace(".", "[.]")로 바로 리턴할 수도 있지만, 리스트를 따로 만들어서 저장하는 위 방법이 훨씬 빨랐다.

Other Solutions

1st

class Solution:
    def defangIPaddr(self, address: str) -> str:
        return address.replace('.', '[.]')
    def defangIPaddr(self, address: str) -> str:
        return '[.]'.join(address.split('.'))
    def defangIPaddr(self, address: str) -> str:
        return re.sub('\.', '[.]', address)
    def defangIPaddr(self, address: str) -> str:
        return ''.join('[.]' if c == '.' else c for c in address)

time complexity: 𝑂(𝑛)
space complexity: 𝑂(𝑛)

split()이나 re.sub()를 이용하는 방법도 참고했다.

Leave a comment