leetcode 93. Restore IP Addresses

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33797928/article/details/80271188

Given a string containing only digits, restore it by returning all possible valid IP address combinations.

Example:

Input: “25525511135”
Output: [“255.255.11.135”, “255.255.111.35”]

package dgdf;

import java.util.ArrayList;
import java.util.List;

public class Class_test1 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Class_test1 main = new Class_test1();
        String s = "25525511135";
        System.out.println(main.restoreIpAddresses(s));
    }
     public List<String> restoreIpAddresses(String s) {
         List<String> res = new ArrayList<String>();
         if(s == null || s.length() == 0) {
             return res;
         }

         if (s.length() > 12) {
             return res; // 位数是不合法的
         }
         for (int i = 0; i < s.length(); i++) {
             for (int j = i + 1; j < s.length(); j++) {
                 for (int k = j + 1; k < s.length(); k++) {
                     // 第一段IP
                     String ip1 = s.substring(0, i + 1);
                     // 第二段IP 
                     String ip2 = s.substring(i + 1, j + 1);
                     // 第三段IP地址
                     String ip3 = s.substring(j + 1,k + 1);
                     // 第四段IP地址
                     String ip4 = s.substring(k + 1);
                     if (check(ip1) && check(ip2) && check(ip3) && check(ip4)) {
                         res.add(ip1 + "." + ip2 + "." + ip3 + "." + ip4);
                     }
                 }
             }                         
         }
         return res;
     }
     // 检查一段IP地址是否合法
     public boolean check(String s) {
         // 如果这段IP 首位为0 的话, 那么只能是一位IP
         if (s.charAt(0) == '0') {
             return s.length() == 1; // 
         }
         else {
             // 需要把这个字符串转化为 整数
             if (Integer.valueOf(s) > 255) {
                 return false;
             }
             else {
                 return true;
             }

         }

     }

}
阅读更多
换一批

没有更多推荐了,返回首页