IP的计算_hdu_2206(郁闷).java
发布时间: 2013-10-13 14:03:53 作者: rapoo
IP的计算_hdu_2206(郁闷).java
192.168.100.16
YES
import java.io.*;import java.util.*;public class Main//很让人蛋疼的题{static int INF_INT = 0x3f3f3f3f;static long INF_LONG = 0x7fffffffffffffffL;static double PI = Math.acos(-1.0);static double oo = 10e9;static double eps = 10e-9;static Scanner cin = new Scanner(new BufferedInputStream(System.in));static String str = new String("");static boolean isvalid(){//总长度不能大于15if (str.length() > 15){return false;}int ncnt = 0;for (int i = 0; i < str.length(); ++i){if ('.' == str.charAt(i)){++ncnt;}else if (!('0' <= str.charAt(i) && str.charAt(i) <= '9')){return false;}}//只能有3个点if (ncnt != 3){return false;}//开头和结尾不能是.if ('.' == str.charAt(0) || '.' == str.charAt(str.length() - 1)){return false;}//两个点不能连着for (int i = 1; i < str.length(); ++i){if ('.' == str.charAt(i - 1) && '.' == str.charAt(i)){return false;}}int ptr = 0;while (ptr < str.length()){int buf = 0;while (ptr < str.length()){if (str.charAt(ptr) == '.'){break ;}buf *= 10;buf += (int)(str.charAt(ptr) - '0');if (buf > 255){return false;}++ptr;}if (ptr == str.length()){break ;}if (str.charAt(ptr) == '.'){++ptr;}}return true;}public static void main(String[] args){while (cin.hasNext()){str = cin.nextLine();System.out.print(isvalid() ? "YES" : "NO");System.out.println();}return ;}}/*import java.io.BufferedReader;import java.io.InputStreamReader;public class Main {//WApublic static void main(String[] args) {BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));String str=null;try {while((str=bf.readLine())!=null){boolean ok=false;for(int i=0;i<str.length();i++){if(!(str.charAt(i)>='0'&&str.charAt(i)<='9'||str.charAt(i)=='.')){ok=true;break;}}String s[]=str.split("\\.");if(s.length!=4||ok){System.out.println("NO");continue;}for(int i=0;i<4;i++){if(!(s[i].length()>=1&&s[i].length()<=3)){ok=true;break;}int a=Integer.parseInt(s[i]);if(!(a>=1&&a<=255)){ok=true;break;}}if(ok)System.out.println("NO");elseSystem.out.println("YES");}} catch (Exception e) {e.printStackTrace();}}}*/