--- tags: LeetCode --- # 1108. Defanging an IP Address Given a valid (IPv4) IP address, return a defanged version of that IP address. A defanged IP address replaces every period "." with "[.]". 1. Example 1: - Input: address = "1.1.1.1" - Output: "1[.]1[.]1[.]1" 2. Example 2: - Input: address = "255.100.50.0" - Output: "255[.]100[.]50[.]0" Constraints: - The given address is a valid IPv4 address. --- 輸入範本如下 ``` public class Solution { public string DefangIPaddr(string address) { return ""; } } ``` 自行限制不准使用 1. address.Replace(".","[.]"); 2. string.Join("[.]", address.Split(".")) 3. address.Split('.').Aggregate((l, r) => $"{l}[.]{r}"); ### 直覺想法 直覺的想法是走訪字串判斷該字元是否為 . 來做相對應的操作 操作目前想到有兩種做法 1. 使用 Insert ```C# // Time complexity: O(n) // Space complexity: O(n) public string DefangIPaddr(string address) { var stringBuilder = new StringBuilder(address); for (int i = stringBuilder.Length - 2; i > 0; i--) { if (stringBuilder[i] == '.') { stringBuilder.Insert(i + 1, "]"); stringBuilder.Insert(i, "["); } } return stringBuilder.ToString(); } ``` 2. 重組一個字串 ```C# // Time complexity: O(n) // Space complexity: O(n) public string DefangIPaddr(string address) { StringBuilder stringBuilder = new StringBuilder(); foreach(var character in address) { if (character == '.') { stringBuilder.Append("[.]"); } else { stringBuilder.Append(character); } } return stringBuilder.ToString(); } ``` ### Thank you! You can find me on - [GitHub](https://github.com/s0920832252) - [Facebook](https://www.facebook.com/fourtune.chen) 若有謬誤 , 煩請告知 , 新手發帖請多包涵 # :100: :muscle: :tada: :sheep: