题解 | 数字字符串转化成IP地址

数字字符串转化成IP地址

https://www.nowcoder.com/practice/ce73540d47374dbe85b3125f57727e1e

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param s string字符串
     * @return string字符串ArrayList
     */
    public ArrayList<String> restoreIpAddresses (String s) {
        // write code here

        ArrayList<String> asList = new ArrayList<String>();

        if (s == null || s.length() == 0 || s.length() < 4) {
            return asList;
        }

        getIpAddress(s, asList, "");
        return asList;

    }

    public void getIpAddress(String s, ArrayList<String> asList, String string) {

        String[] strs = string.split("\\.");
        if (s.length() == 0 && strs.length == 4) {
            asList.add(new String(string.substring(0, string.length() - 1)));
            return;
        }
        if (strs.length > 4 || s.length() == 0) return;

        for (int m = 1; m < 4; m++) {

            if (m > s.length()) break;

            string = string + s.substring(0, m) + ".";
            int val = Integer.parseInt(s.substring(0, m));

            if (val < 0 || val > 255) continue;

            if(val == 0){
                if(!Objects.equals(s.substring(0, m),"0")) continue;
            }else{
                if(Objects.equals(s.substring(0,m).substring(0,1),"0")) continue;
            }
            
            String s1 = s.substring(m);
            getIpAddress(s1, asList, string);
            string = string.substring(0,string.length() - m - 1);
        }

    }
}

全部评论

相关推荐

03-02 08:18
集美大学 Java
钱嘛数字而已:没有赛事奖项么?另外,项目经历字有点多哈,建议突出一下重点:用的什么技术,解决什么问题,达到什么效果。
大家都开始春招面试了吗
点赞 评论 收藏
分享
牛客44320985...:你的当务之急是把这个糖的要死的沟槽ide主题改了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务