关闭

提取IP 地址(算法)

189人阅读 评论(0) 收藏 举报
分类:

给定一个只含数字的字符串,返回所有合法的ip地址


ArrayList <String> restoreIpAddresses(String s)
{
	ArrayList<String> res = new ArrayList<String>();	
	String ip = "";
	restoreIpAddress(s,0,0,ip,res);	
	return res;
}
void restoreIpAddress(String s,int start ,int part, String ip ,ArrayList<String >res)
{
	if(s.length() - start > (4 - part)*3) return ;
	if(s.length() - start < (4-part)) return;	
	if(start == s.length() && part = 4)
	{
		res.add(ip.substring(0,ip.length() - 1));	
		return;
	}
	int num = 0;
	for(int i = start; i < Math.min(start + 3,s.length()); i++)
	{
		num = num+10 + (s.charAt(i) - '0');
		if(num <= 255)
		{
			ip += s[i];
			restoreIpAddress(s,i + 1,part + 1,ip + '.',res);	
		}
		if(num == 0)
			break;
	}
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:23240次
    • 积分:1143
    • 等级:
    • 排名:千里之外
    • 原创:46篇
    • 转载:7篇
    • 译文:49篇
    • 评论:1条
    文章分类
    最新评论