石家庄城乡建设网站,网页设计工资统计,新媒体网站建设方案,wordpress实时推送 phpC第二阶段——数据结构和算法#xff0c;之前学过一点点数据结构#xff0c;当时是基于Python来学习的#xff0c;现在基于C查漏补缺#xff0c;尤其是树的部分。这一部分计划一个月#xff0c;主要利用代码随想录来学习#xff0c;刷题使用力扣网站#xff0c;不定时更… C第二阶段——数据结构和算法之前学过一点点数据结构当时是基于Python来学习的现在基于C查漏补缺尤其是树的部分。这一部分计划一个月主要利用代码随想录来学习刷题使用力扣网站不定时更新欢迎关注 文章目录 一、131.分割回文串二、93. 复原 IP 地址 一、131.分割回文串 class Solution {
public:vectorvectorstring result;vectorstring path;vectorvectorstring partition(string s) {insertS(s,0);return result;}// 填充函数void insertS(string s,int startIndex){// 结束条件if(startIndexs.length()){result.push_back(path);return;}for(int istartIndex;is.length();i){if(isPart(s,startIndex,i)){path.push_back(s.substr(startIndex,i-startIndex1));}else{continue;}insertS(s,i1);path.pop_back();}}// 定义一个判断回文字符串的函数bool isPart(string s,int begin,int end){if(s.length()1){return true;}while(beginend){if(s[begin]!s[end]){return false;}begin;end--;}return true;}
};二、93. 复原 IP 地址 class Solution {
public:vectorstring result;int count0;vectorstring restoreIpAddresses(string s) {if(s.size()4||s.size()12) return result;insertS(s,0);return result;}void insertS(string s,int stardIndex){// 收集结果if(count3){// 判断后面的符不符合规则if(isValid(s,stardIndex,s.length()-1)){result.push_back(s);}return;}for(int i stardIndex;is.length();i){// 判断前面的符不符合规则if(isValid(s,stardIndex,i)){// 符合规则,在哪个位置插入.s.insert(s.begin()i1,.);count;insertS(s,i2);count--;s.erase(s.begin()i1);}else{break;}}}bool isValid(string s,int begin,int end){if (begin end) {return false;}// 左闭右闭// 1. 第一个为0if(s[begin]0 begin ! end) return false;// 2. 有特殊字符int num 0;for(int ibegin;iend;i){if((s[i]9s[i]0)){num num * 10 (s[i] - 0);}else{return false;}}// 3. 数字不符合区间if(num255) return false;return true;}
};