同学,你的第二题是IP地址码?
我记得是LeetCode 的原题,以前刷过
import java.util.Scanner;
public class Main1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("hello world");
Scanner in = new Scanner(System.in);
String s=in.nextLine();
vavidIP(s);
}
private static void vavidIP(String s) {
// TODO Auto-generated method stub
int len = s.length();
for (int i = 1; i <=3; ++i){ // first cut
if (len-i > 9) continue;
for (int j = i+1; j<=i+3; ++j){ //second cut
if (len-j > 6) continue;
for (int k = j+1; k<=j+3 && k<len; ++k){ // third cut
int a,b,c,d; // the four int's seperated by "."
a = Integer.parseInt(s.substring(0,i));
b = Integer.parseInt(s.substring(i,j)); // notice that "01" can be parsed into 1. Need to deal with that later.
c = Integer.parseInt(s.substring(j,k));
d = Integer.parseInt(s.substring(k));
if (a>255 || b>255 || c>255 || d>255) continue;
String ip = a+"."+b+"."+c+"."+d;
if (ip.length()<len+3) continue; // this is to reject those int's parsed from "01" or "00"-like substrings
System.out.println(ip);
}
}
}
}
public static boolean isValid(String s){
if(s.length()>3 || s.length()==0 || (s.charAt(0)=='0' && s.length()>1) || Integer.parseInt(s)>255)
return false;
return true;
}
}