LeetCode-1108. IP 地址无效化

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容