HDU 2206 IP的计算

作者: itbird01 | 来源:发表于2021-11-21 09:25 被阅读0次

    HDU 2206 IP的计算

    解题思路

    1.分析题意可知,由于是IP地址检测,所以此题需要做很多检测
    2.首先判断,如果满足以下任一条件,则直接返回No--输入的字符串长度等于0、输入的字符串长度大于15、输入的字符串以“.”开头或者结尾、输入的字符串以“.”分隔得到的数组长度不等于4
    3.对输入数据做了校验之后,接下来就很简单了,我们只需对以“.”分隔得到的数组每个元素,做如下检测即可:元素长度需要满足length>=1&&length<=3、元素可以转换为无符号整数int、转换得到的int需要满足x>=0&&x<=255
    4.满足以上所有条件,则返回YES

    解题遇到的问题

    认真审题、ACM还是首先要做好数据校验工作

    后续需要总结学习的知识点

    ##解法
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            while (scanner.hasNext()) {
                String input = scanner.nextLine();
                boolean ans = true;
                String[] array = input.split("\\.");
                if (input.length() == 0 || input.length() > 15
                        || input.charAt(0) == '.'
                        || input.charAt(input.length() - 1) == '.'
                        || array.length != 4) {
                    ans = false;
                } else {
                    for (int i = 0; i < array.length; i++) {
                        if (array[i].length() < 1 || array[i].length() > 3) {
                            ans = false;
                            break;
                        }
    
                        int temp = 0;
                        try {
                            temp = Integer.parseInt(array[i]);
                            if (temp > 255 || temp < 0) {
                                ans = false;
                                break;
                            }
                        } catch (Exception e) {
                            ans = false;
                            break;
                        }
                    }
                }
                System.out.println(ans ? "YES" : "NO");
            }
            scanner.close();
        }
    }
    

    相关文章

      网友评论

        本文标题:HDU 2206 IP的计算

        本文链接:https://www.haomeiwen.com/subject/raydtrtx.html