一:每日论语解读
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;}
};
最近太烦躁了 学习效率还低 晚上听书的时候 听到樊登经常解读论语 来解释人们遇见的一些困惑 其实仔细想想 也挺对
毕竟流传了好几千年 所以这些都是精髓 我们现在遇到的问题 可能我们的祖先早就遇见过了 小时候用脑子背论语
长大后 才明白应该去用心理解论语的真正内涵 人迷茫烦躁的时候 该信些什么呢 我现在相信论语 心平静了 脑子就不胡思乱想了。