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

数字字符串转化成IP地址

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



public class Solution {
    /**
     * 
     * @param s string字符串 
     * @return string字符串ArrayList
     */
    public ArrayList<String> restoreIpAddresses (String s) {
        // write code here
        ArrayList<String> result = new ArrayList<>();
        dfs(0,0,new StringBuilder(), result, s);
        return result;
    }
    private void dfs(int index, int depth, StringBuilder ip, ArrayList<String> result,String s){
        int length = ip.length();
        if(index == s.length()){
            if(depth == 4){
                //最后一个 将.删除
                ip.deleteCharAt(ip.length() - 1);
                result.add(ip.toString());
            }
        }
        for(int i = 1;i<= 3;i++){
            if(i + index > s.length()){
                break;
            }
            //截取字符串 
            int num = Integer.parseInt(s.substring(index, index + i));
            
            //非法  大于255 的,以及如果是两个0,转换后就是0不等于长度i 相当于自己删除了一个数字,没有xx.00.这种
            if(num > 255 || String.valueOf(num).length() != i){
                continue;
            }
            ip.append(num).append(".");
            //固定了第0个,下一次就是固定第1个去 
            dfs(index+i,depth + 1, ip, result, s);
            ip.setLength(length);
        }
    }
}
全部评论

相关推荐

2025-12-18 11:59
广州南方学院 C++
牛客78682892...:直接点还好,总比要了简历也不回的强
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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