LeetCode-1108. IP 地址无效化

2020-04-10  本文已影响0人  御守888

给你一个有效的 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

上一篇下一篇

猜你喜欢

热点阅读