IP那个LeetCode上做过,我记得最出乎意料的一点是以0开头的,只能是0,其他判断都还比较简单,DFS+DP很容易解决,代码是我LeetCode上的解决办法,问题略有不同,原问题返回所有IP,这里我size了一下 import java.util.ArrayList; import java.util.List; import java.util.Scanner; import java.util.Stack; public class Main {     public static void main(String[] args) {         Scanner in = new Scanner(System.in);         String line = in.nextLine();         System.out.println(restoreIpAddresses(line).size());     }          public static List<String> restoreIpAddresses(String s) {         List<String> ret = new ArrayList<>();         if (s == null || s.length() < 4 || s.length() > 32)             return ret;         findIP(s, 0, 3, new Stack<>(), ret);         return ret;     }          public static void findIP(String s, int start, int part, Stack<String> stack, List<String> ret) {         if (part == -1) {             ret.add(toIP(stack));             return;         }         for (int i = start + 1, count = 0; count < 3 && i <= s.length(); i++, count++) {             if (s.length() - i >= part && s.length() - i <= 3 * part && Integer.parseInt(s.substring(start, i)) < 256) {                 stack.push(s.substring(start, i));                 findIP(s, i, part - 1, stack, ret);                 stack.pop();             }             if (s.charAt(start) == '0')                 break;         }     }     public static String toIP(Stack<String> stack) {         StringBuilder ret = new StringBuilder();         for (String s : stack) {             ret.append(s).append(".");         }         return ret.deleteCharAt(ret.length() - 1).toString();     } }
点赞 评论

相关推荐

好久没来牛客了,今天面试了一个实习生,感觉对方形象乱糟糟的,头发像鸡窝,像刚睡醒就来面试了,第一印象直接大打折扣,感觉我没有受到应有的尊重,再加上对方业务能力也一般,我直接挂掉;大家面试的时候还是好好收拾一下自己吧,争取给面试官留下个好印象,面试这东西还是存在眼缘的
MinJerous:更在乎本质,应该看候选人是否和岗位需要的能力匹配。洗脸/不洗头都无所谓吧,说不定人家刚刚通宵准备,就是为了这场面试呢?你挂掉他核心原因还是他能力不行,而不是形象。就算形象好点,能力不行你敢给过吗,不怕后面+1质疑你
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务