[leetcode] 1

less than 1 minute read

LeetCode 1108 Defanging an IP Address

Problem

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"

My Solution Java

입력된 String에서 .[.]로 대체를 하면 된다 . 그래서 string의 replace method를 사용하려함

class Solution {
    public String defangIPaddr(String address) {
        String result =address.replaceAll("\\.","[.]");
        return result;
    }
}

여기서 address.resplaceAll('.',"[.]")은 동작은 하지만 원하는 결과를 얻을 수 없다.
replace 함수를 사용하면 상관없지만 만약에 replaceAll 함수를 사용할 시 '.'을 사용하면 전체 문장을 [.]로 replace 한다.
'.'가 정규식 예약어이기 때문이다. 그렇기 때문에 정규식을 무시하기 위해 \\을 추가하여

  String result =address.replaceAll("\\.","[.]");

Solution JavaScript

JavaScript는 replace함수를 사용하면 하나의 char만 replace 하고 동작을 멈춘다. 그렇기 때문에 /[.]/g을 활용하여 패턴을 분석 하게 한다.

var defangIPaddr = function(address) {
    var result =address.replace(/[.]/g,'[.]');
    return result;
};

Updated: