zoukankan      html  css  js  c++  java
  • [leetcode.com]算法题目

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

    For example:
    Given "25525511135",

    return ["255.255.11.135", "255.255.111.35"]. (Order does not matter)

    我的答案如下:

     1 class Solution {
     2 public:
     3     
     4     vector<string> restoreIpAddresses(string s) {
     5         // Start typing your C/C++ solution below
     6         // DO NOT write int main() function
     7         int i=0,j,k;
     8         int len = s.size();
     9         vector<string> result;
    10         if (len>12 || len< 4)
    11             return result;
    12         for(i;i<len-3;i++){
    13             for(j=i+1;j<len-2;j++){
    14                 for(k=j+1;k<len-1;k++){
    15                     string s1 = s.substr(0,i+1);
    16                     string s2 = s.substr(i+1,j-i);
    17                     string s3 = s.substr(j+1,k-j);
    18                     string s4 = s.substr(k+1);
    19                     if(isOK(s1) && isOK(s2) && isOK(s3) && isOK(s4)){
    20                         string s5 = s1 + "." + s2 + "." + s3 + "." + s4;
    21                         result.push_back(s5);
    22                     }
    23                 }
    24             }
    25         }
    26         return result;
    27     }
    28     
    29     bool isOK(string s){
    30         int len = s.size();
    31         if (len>3 || len <1)
    32             return false;
    33         else if (1==len)
    34             return true;
    35         else if (2==len){
    36             return ('0'!=s.at(0));
    37         }else{//3==len
    38             int a = (s.at(0)-'0')*100 + (s.at(1)-'0')*10+(s.at(2)-'0');
    39             return (a>=100 && a<=255);
    40         }
    41     }
    42 };
    我的答案

    思路:遍历所有的可能性,因为最多也就是个长度为12的字符串,三层循环也不用考虑复杂度的问题。把parse出来的三个string检查一下是否为0至255之间的整数,如果四个都满足,那就是这个题目的一个解。主要首位数不能为0,例如03,012这样的不算是在0至255之间。

  • 相关阅读:
    使用git bash提交代码到github托管
    eclipse中将java项目变成web项目
    程序员的兼职网站
    python 文件内容修改替换操作
    简单介绍下python中函数的基础语法
    python lambda简单介绍
    微信小程序 --01
    微信小程序开发 --02
    弹性盒模型flex
    HTML基础
  • 原文地址:https://www.cnblogs.com/xuning/p/3335941.html
Copyright © 2011-2022 走看看