国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

[LeetCode] Validate IP Address

yeooo / 1371人閱讀

Problem

Write a function to check whether an input string is a valid IPv4 address or IPv6 address or neither.

IPv4 addresses are canonically represented in dot-decimal notation, which consists of four decimal numbers, each ranging from 0 to 255, separated by dots ("."), e.g.,172.16.254.1;

Besides, leading zeros in the IPv4 is invalid. For example, the address 172.16.254.01 is invalid.

IPv6 addresses are represented as eight groups of four hexadecimal digits, each group representing 16 bits. The groups are separated by colons (":"). For example, the address 2001:0db8:85a3:0000:0000:8a2e:0370:7334 is a valid one. Also, we could omit some leading zeros among four hexadecimal digits and some low-case characters in the address to upper-case ones, so 2001:db8:85a3:0:0:8A2E:0370:7334 is also a valid IPv6 address(Omit leading zeros and using upper cases).

However, we don"t replace a consecutive group of zero value with a single empty group using two consecutive colons (::) to pursue simplicity. For example, 2001:0db8:85a3::8A2E:0370:7334 is an invalid IPv6 address.

Besides, extra leading zeros in the IPv6 is also invalid. For example, the address 02001:0db8:85a3:0000:0000:8a2e:0370:7334 is invalid.

Note: You may assume there is no extra space or special characters in the input string.

Example 1:

Input: "172.16.254.1"

Output: "IPv4"

Explanation: This is a valid IPv4 address, return "IPv4".

Example 2:

Input: "2001:0db8:85a3:0:0:8A2E:0370:7334"

Output: "IPv6"

Explanation: This is a valid IPv6 address, return "IPv6".

Example 3:

Input: "256.256.256.256"

Output: "Neither"

Explanation: This is neither a IPv4 address nor a IPv6 address.

Solution

很爛,很無(wú)聊的題目

class Solution {
    public String validIPAddress(String IP) {
        if (validIPv4(IP)) return "IPv4";
        else if (validIPv6(IP)) return "IPv6";
        else return "Neither";
    }
    private boolean validIPv4(String IP) {
        if (IP == null || IP.length() < 7 || IP.charAt(0) == "." || IP.charAt(IP.length()-1) == ".") return false;
        String[] segments = IP.toLowerCase().split(".");
        if (segments.length != 4) return false;
        try {
            for (String segment: segments) {
                int value = Integer.parseInt(segment);
                if (value < 0 || value > 255 || 
                    (value != 0 && segment.startsWith("0")) || 
                    (value == 0 && segment.length() > 1)) {
                    return false;
                }
            }
        } catch (NumberFormatException e) {
            return false;
        }
        
        return true;
    }
    private boolean validIPv6(String IP) {
        if (IP == null || IP.length() < 15 || IP.charAt(0) == ":" || IP.charAt(IP.length()-1) == ":") return false;
        String[] segments = IP.toLowerCase().split(":");
        if (segments.length != 8) return false;
        for (String segment: segments) {
            System.out.println(segment);
            if (segment.length() == 0 || segment.length() > 4) return false;
            for (char ch: segment.toCharArray()) {
                if ((ch >= "a" && ch <= "f") || (ch >= "0" && ch <= "9")) continue;
                else return false;
            }
        }
        return true;
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/77141.html

相關(guān)文章

  • [Leetcode] Restore IP Address 修復(fù)IP地址

    摘要:四分法復(fù)雜度時(shí)間空間思路用三個(gè)點(diǎn)將字符串分成四段,驗(yàn)證每一段是否是有效的。注意使用時(shí)要確保所得到數(shù)不會(huì)超界。代碼第一個(gè)分割點(diǎn)第二個(gè)分割點(diǎn)第三個(gè)分割點(diǎn) Restore IP Address Given a string containing only digits, restore it by returning all possible valid IP address combin...

    VioletJack 評(píng)論0 收藏0
  • [Leetcode] Validate Binary Search Tree 驗(yàn)證二叉搜索樹(shù)

    摘要:注意這里的結(jié)構(gòu)和不同的二叉樹(shù)遍歷一樣,如果到空節(jié)點(diǎn)就返回,否則遞歸遍歷左節(jié)點(diǎn)和右節(jié)點(diǎn)。唯一不同是加入了和,所以要在遞歸之前先判斷是否符合和的條件。代碼如果該節(jié)點(diǎn)大于上限返回假如果該節(jié)點(diǎn)小于下限返回假遞歸判斷左子樹(shù)和右子樹(shù) Validate Binary Search Tree Given a binary tree, determine if it is a valid binary...

    fuchenxuan 評(píng)論0 收藏0
  • leetcode98. Validate Binary Search Tree

    摘要:題目要求檢驗(yàn)二叉查找樹(shù)是否符合規(guī)則。二叉查找樹(shù)是指當(dāng)前節(jié)點(diǎn)左子樹(shù)上的值均比其小,右子樹(shù)上的值均比起大。因此在這里我們采用棧的方式實(shí)現(xiàn)中序遍歷,通過(guò)研究中序遍歷是否遞增來(lái)判斷二叉查找樹(shù)是否符合規(guī)則。 題目要求 Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is...

    codercao 評(píng)論0 收藏0
  • leetcode98. Validate Binary Search Tree

    摘要:題目要求檢驗(yàn)二叉查找樹(shù)是否符合規(guī)則。二叉查找樹(shù)是指當(dāng)前節(jié)點(diǎn)左子樹(shù)上的值均比其小,右子樹(shù)上的值均比起大。因此在這里我們采用棧的方式實(shí)現(xiàn)中序遍歷,通過(guò)研究中序遍歷是否遞增來(lái)判斷二叉查找樹(shù)是否符合規(guī)則。 題目要求 Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is...

    AlphaWatch 評(píng)論0 收藏0
  • leetcode98. Validate Binary Search Tree

    摘要:題目要求判斷一個(gè)樹(shù)是否是二叉查找樹(shù)。二叉查找樹(shù)即滿(mǎn)足當(dāng)前節(jié)點(diǎn)左子樹(shù)的值均小于當(dāng)前節(jié)點(diǎn)的值,右子樹(shù)的值均大于當(dāng)前節(jié)點(diǎn)的值。思路一可以看到,對(duì)二叉查找樹(shù)的中序遍歷結(jié)果應(yīng)當(dāng)是一個(gè)遞增的數(shù)組。這里我們用堆棧的方式實(shí)現(xiàn)中序遍歷。 題目要求 given a binary tree, determine if it is a valid binary search tree (BST). Assu...

    songze 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<