【LeetCode】1108. IP 地址無效化

一、題目描述

給你一個有效的 IPv4 地址 address,返回這個 IP 地址的無效化版本。
所謂無效化 IP 地址,其實就是用 “[.]” 代替了每個 “.”。

示例 1:
輸入:address = “1.1.1.1”
輸出:“1[.]1[.]1[.]1”

示例 2:
輸入:address = “255.100.50.0”
輸出:“255[.]100[.]50[.]0”

提示:
給出的 address 是一個有效的 IPv4 地址

二、題目分析

這道題是在新出題庫裏看到的,是一道很簡單的題目
思路1:定義新的數組,循環 IP 地址的每個字符,映射到新數組,遇到 ‘.’ 符號,自動替換成 “[.]” 即可
思路2:在原來基礎上改動,重新分配字符串的內存空間,多申請6個字符的空間,然後定義兩個指針,分別從數組末尾和原 IP 結尾 開始往前循環遍歷,移位替換即可(更傾向用 C 實現)

三、代碼實現

// leetcode_1108. IP 地址無效化
// 歡迎繼續優化代碼
package main

import (
	"fmt"
)

func main() {
	fmt.Println("> ", defangIPaddr("1.1.1.2"))
}

func defangIPaddr(address string) string {
	var defangAddr []byte

	for _, b := range address {
		if b == '.' {
			defangAddr = append(defangAddr, '[', '.', ']')
		} else {
			defangAddr = append(defangAddr, byte(b))
		}
	}

	return string(defangAddr)
}

運行結果:

> 1[.]1[.]1[.]2

Process finished with exit code 0

——2019-07-12——

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章