美文网首页
LeetCode-1108. IP 地址无效化

LeetCode-1108. IP 地址无效化

作者: 御守888 | 来源:发表于2020-04-10 12:36 被阅读0次

    给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本。

    所谓无效化 IP 地址,其实就是用 "[.]" 代替了每个 "."。

    示例 1:

    输入:address = "1.1.1.1"

    输出:"1[.]1[.]1[.]1"

    class Solution {

        public String defangIPaddr(String address) {

            return replaceAll(address);

        }

        public  String replaceAll(String s) {

            int len = s.length();

            int dotSize = 0;

            for (int i = 0; i < len; i++) {

                if (s.charAt(i) == '.') {

                    dotSize++;

                }

            }

            int newSize = len + dotSize * 2;

            char[] chars = new char[newSize];

            newSize--;

            for (int i = len - 1; i >= 0; i--) {

                //System.out.println("i==" + i + ";s==" + s.charAt(i));

                if (s.charAt(i) == '.') {

                    chars[newSize--] = ']';

                    chars[newSize--] = '.';

                    chars[newSize--] = '[';

                } else {

                    chars[newSize--] = s.charAt(i);

                }

            }

            return new String(chars);

        }

    }

    解析:重点考察repace的实现。

    直接操作char类型。倒叙复制char[],时间复杂度Q(n)

    正序操作时间复杂度Q(n^2)

     思路见剑指Offer Page51-Page55

    相关文章

      网友评论

          本文标题:LeetCode-1108. IP 地址无效化

          本文链接:https://www.haomeiwen.com/subject/idfrmhtx.html