当前位置: 首页 > 后端技术 > Java

LeetCode-093-RecoverIPAddress

时间:2023-04-01 13:15:31 Java

RecoverIPAddress题目描述:给定一个只包含数字的字符串来表示一个IP地址,返回所有可能从s获得的有效IP地址。您可以按任何顺序返回答案。一个有效的IP地址恰好由四个整数组成(每个整数介于0和255之间,不带前导0),以“.”分隔。例如:“0.1.2.201”和“192.168.1.1”是有效的IP地址,而“0.011.255.245”、“192.168.1.312”和“192.168@1.1”是无效的IP地址。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode所有。商业转载请联系官方授权,非商业转载请注明出处。方案一:回溯算法将IP地址分成4段,记录每一段IP地址的值,然后从第一段开始处理,递归判断后面的IP地址是否满足条件。importjava.util.ArrayList;importjava.util.List;publicclassLeetCode_093{//IP地址共有4个段privatestaticfinalintSEG_COUNT=4;//IP地址的4段分别是什么值?私有静态int[]段;//结果集privatestaticListresult=newArrayList<>();publicstaticListrestoreIpAddresses(Strings){segments=newint[SEG_COUNT];dfs(s,0,0);返回结果;}/***回溯算法**@params原始字符串*@paramsegId当前段IP地址*@paramsegStart当前段segIdIP地址起始位置*/privatestaticvoiddfs(Strings,intsegId,intsegStart){//如果找到4段IP地址并遍历字符串,则表示当前结果是一个合格的IP地址if(segId==SEG_COUNT){if(segStart==s.length()){StringBufferipAddr=新的字符串缓冲区();对于(inti=0;i0&&addr<=0xFF){段[segId]=addr;dfs(s,segId+1,segEnd+1);}else{休息;}}}publicstaticvoidmain(String[]args){for(StringrestoreIpAddress:restoreIpAddresses("101023")){System.out.println(恢复IP地址);}}}[每日留言]人不能让自己吃太多,饿了就想和别人较量,所以我经常告诫自己不要让自己吃太多,一定要出去打架