public static List<String> restoreIpAddresses(String s) {          List<String> list=new ArrayList<String>();          int len=s.length();          if(len<4||len>12)return list;          else if(len==4){              String str="";              for(int i=0;i<len;i++){                  str+=s.charAt(i);                  if(i!=len-1)str+=".";              }              list.add(str);              return list;          }  dfs(s,"",list,0);          return list;         }  //用递归或者深度遍历,另外书写一个判断这个数字是否有效 st="123.23."  temp=23 st+=temp,isvalid(temp)      static boolean isValid(String str){          int num=Integer.parseInt(str);          int len=str.length();         // System.out.println(str+":"+num);          if(len>1&&str.charAt(0)=='0')              return false;          if(num>=0&&num<256)              return true;          else              return false;      }      static void dfs(String s,String temp,List<String> list,int k){          if(k==3&&isValid(s)){              list.add(temp+s);              return;          }          for(int i=1;i<4&&i<s.length();i++){              String str=s.substring(0, i);             if(isValid(str)){                 dfs(s.substring(i),temp+str+'.',list,k+1);             }          }      }     
点赞 评论

相关推荐

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