日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

leetcode93. 复原 IP 地址

發布時間:2023/12/4 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 leetcode93. 复原 IP 地址 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一:每日論語解讀

follow me !! 君子坦蕩蕩 小人常威威

二:題目

三:上碼

class Solution { public:/**思路:1.分析題意本題依然是切割字符串(我們需要對要分割的字符串做出處理 需要判斷我們截取的字符串是否合法)2。關于‘.’的處理 我們是在原字符串的基礎上進行插入和刪除 */vector<string>ans;//參數 index 是因為防止出現重復 ,pointNum 是記錄小數點的數量 當小數點的數量為3的時候 我們//就已經切割成了4段void backstacking(string &s,int index,int pointNum) {if(pointNum == 3) {//判斷第四段函數是否合法if(isgoodStr(s,index,s.size()-1)){//字符串最后一位的下標比字符串長度小一ans.push_back(s);}return;}for(int i = index; i < s.size(); i++) {if(isgoodStr(s,index,i)) {pointNum++;s.insert(s.begin()+i+1,'.');//這里插入函數的第一位是代表我們要插入的位置backstacking(s,i+2,pointNum);//插入'.'后下一個字串的起始位置是i+2pointNum--;s.erase(s.begin()+i+1);}else{break;//如果不合法就跳過此層的遍歷}}}//判斷截取的字符串是否合法bool isgoodStr(string &s,int start,int end) {if(start > end) return false;//如果不加上這一步的話 那么就會出現ip 第四個數為空的狀況//如果開頭是0那就不合適 但是單個的0是合適的 所以需要start != endif(s[start] == '0' && start != end) {return false;} int num = 0;//接下倆就是判斷輸入的字符是否超過255 是否合法for(int i = start; i <= end; i++) {if(s[i] > '9' || s[i] < '0'){return false;}num = num*10+(s[i]-'0');if(num > 255) {return false;}}return true;} vector<string> restoreIpAddresses(string s) {backstacking(s,0,0);return ans;} };

最近太煩躁了 學習效率還低 晚上聽書的時候 聽到樊登經常解讀論語 來解釋人們遇見的一些困惑 其實仔細想想 也挺對
畢竟流傳了好幾千年 所以這些都是精髓 我們現在遇到的問題 可能我們的祖先早就遇見過了 小時候用腦子背論語
長大后 才明白應該去用心理解論語的真正內涵 人迷茫煩躁的時候 該信些什么呢 我現在相信論語 心平靜了 腦子就不胡思亂想了。

總結

以上是生活随笔為你收集整理的leetcode93. 复原 IP 地址的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。