设为首页 加入收藏

TOP

LeetCode(93) Restore IP Addresses
2015-11-21 00:55:55 来源: 作者: 【 】 浏览:1
Tags:LeetCode Restore Addresses

花了差不多一个晚上找bug,将

string tmpString;
                    tmpString += s[start + 0] + s[start + 1] + s[start + 2];

改为

string tmpString;
            tmpString.push_back(s[start + 0]);tmpString.push_back(s[start + 1]);tmpString.push_back(s[start + 2]);

程序就正常了,什么原因!!!

class Solution {
public:

    void backtracking(string s, int start, int depth, vector
   
     &result, string &output, int length) { if(start >= length) return; if(depth == 3) { if(length - start > 3) return; if(length - start == 1) { output.push_back(s[start]); result.push_back(output); output.pop_back(); return; } if( length - start == 2) { if(s[start] != '0') { output.push_back(s[start]);output.push_back(s[start + 1]); result.push_back(output); output.pop_back();output.pop_back(); return; }else { return; } } if( length - start == 3) { if(s[start] != '0') { string tmpString; tmpString.push_back(s[start + 0]);tmpString.push_back(s[start + 1]);tmpString.push_back(s[start + 2]); int tmpInt = stoi(tmpString); if(tmpInt > 255) { return; }else { output.push_back(s[start]);output.push_back(s[start + 1]);output.push_back(s[start + 2]); result.push_back(output); output.pop_back();output.pop_back();output.pop_back(); return; } }else { return; } } } output.push_back(s[start + 0]);output.push_back('.'); backtracking(s, start + 1, depth + 1, result, output, length); output.pop_back();output.pop_back(); if((s[start] != '0') && (length - start >= 2)) { output.push_back(s[start + 0]); output.push_back(s[start + 1]);output.push_back('.'); backtracking(s, start + 2, depth + 1, result, output, length); output.pop_back(); output.pop_back();output.pop_back(); } if((s[start] != '0') && (length - start >= 3)) { string tmpString; tmpString.push_back(s[start + 0]);tmpString.push_back(s[start + 1]);tmpString.push_back(s[start + 2]); int tmpInt = stoi(tmpString); if(tmpInt > 255) { return; }else { output.push_back(s[start + 0]);output.push_back(s[start + 1]);output.push_back(s[start + 2]);output.push_back('.'); backtracking(s, start + 3, depth + 1, result, output, length); output.pop_back();output.pop_back();output.pop_back();output.pop_back(); } } } vector
    
      restoreIpAddresses(string s) { vector
     
       result; string output; int length = s.size(); backtracking(s, 0, 0, result, output, length); return result; } };
     
    
   

?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇hdu1258(Sum It Up) 下一篇POJ 1160:Post Office 邮局经典DP

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: