算法作業HW9:LeetCode93 Restore IP Addresses

Description:

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

Note:

For example:
Given "25525511135",return ["255.255.11.135", "255.255.111.35"]. (Order does not matter)


Solution:

  Analysis and Thinking:

使用分治的思想,通過將原始問題不斷縮減爲同類性質的小問題,逐一解決,最後再把所有解答集成形成最終答案。這裏我們可以用'.'作爲分割的標誌,將一個初始輸入的字符串分割成4個子段,並且能通過4個子段組合成一個符合規定的IP地址。其中每一個子段可能包含1位、2位、或者3位,因此最終需要分類討論。

  

  Steps:

1.判斷輸入字符串是否已被全部遍歷,且生成了4個段,如果是,停止函數並返回

2.判斷字符串總長度是否大於規定的長度,如果是,返回

3.如果輸入的字符串只包含1個字符,則加入該字符,且將位置標誌加1,子段數量加1,調用自身函數

4.如果輸入的字符串包含2個字符,加入這2個字符,將位置標誌加2,子段數量加1,調用自身函數

5.如果輸入的字符串包含3個字符,加入這3個字符,將位置標誌加3,子段數加1,調用自身函數


Codes:

class Solution
 {
 public:
     void ipAddress_solution(string &s,int stringSize,int pos,string &record,vector<string> &result)
     {
         if(s.size()-pos>3*(4-num))
            return;
         if(pos==s.size()&&stringSize==4)
         {
             result.push_back(record.substr(0,path.size()-1));
             return;
         }
         
         if(pos<s.size())
         {
             record=record+s.substr(pos,1)+".";
             ipAddress_solution(s,stringSize+1,pos+1,record,result);
             record=record.substr(0,record.size()-2);
         }
         
         if(pos<s.size()-1&&s[pos]!='0')
         {
             record=record+s.substr(pos,2)+".";
             ipAddress_solution(s,stringSize+1,pos+2,record,result);
             record=record.substr(0,record.size()-3);
         }
         if(pos<s.size()-2&&s[pos]!='0'&&s.substr(pos,3)<="255")
         {
             record=s.substr(pos,3)+".";
             ipAddress_solution(s,stringSize+1,pos+3,record,result);
             record=record.substr(0,record.size()-4);
         }
     }
     vector<string> restoreIpAddress(string s)
     {
         vector<string> result;
         string record;
         ipAddress_solution(s,0,0,record,result);
         return result;
     }
 };


Results:





發佈了35 篇原創文章 · 獲贊 0 · 訪問量 4638
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章