zoukankan      html  css  js  c++  java
  • LeetCode "Restore IP Addresses"

    It is all about corner cases.

    class Solution {
    public:
        vector<string> retv;
        bool isValid(string &sub)
        {
            unsigned cnt = sub.length();
            if (cnt == 0 || cnt > 3) return false;
            if (cnt == 1) return true;
            else
            {
                if (sub[0] == '0') return false;
                if (cnt == 2) return true;
                int n = atoi(sub.c_str());
                return n < 256;
            }
            
        }
        void go(string &in, int iStart, int level, string ret)
        {
            if (iStart >= in.size()) return;
            if (level == 3)
            {
                string slst = in.substr(iStart, in.length() - iStart);            
                if (isValid(slst))
                {
                    ret += ".";
                    ret += slst;
                    retv.push_back(ret);
                }
                return;
            }
            //    len 1
            string ret1 = ret;
            if(level > 0) ret1 += ".";
            ret1 += in[iStart];
            go(in, iStart + 1, level + 1, ret1);
    
            //    len 2
            string ret2 = ret;
            if(level > 0) ret2 += ".";
            string sub2 = in.substr(iStart, 2);
            if (isValid(sub2))
            {
                ret2 += sub2;
                go(in, iStart + 2, level + 1, ret2);
            }
    
            //    len 3
            string sub = in.substr(iStart, 3);
            if (isValid(sub))
            {
                string ret3 = ret;
                if (level > 0) ret3 += ".";
                ret3 += sub;
                go(in, iStart + 3, level + 1, ret3);
            }
        }
        vector<string> restoreIpAddresses(string s) {
            if (s.empty()) return retv;
            go(s, 0, 0, "");
            return retv;
        }
    };
  • 相关阅读:
    java.lang.NoClassDefFoundError: org/springframework/dao/support/DaoSupport
    project configuration is not up-to-date with pom.xml
    消息列队5
    消息列队4
    消息列队3
    聊聊常见的数据库架构设计方案?
    消息队列2
    消息队列1
    搜索引擎5
    搜索引擎4
  • 原文地址:https://www.cnblogs.com/tonix/p/3886688.html
Copyright © 2011-2022 走看看