博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Palindrome Partitioning
阅读量:4499 次
发布时间:2019-06-08

本文共 1332 字,大约阅读时间需要 4 分钟。

    又写完了一道,好开心,洗澡睡觉去~~~明天再看答案好了~

    时间只要花在了

// 进行下一次前,先将上次加入palindrome的string删掉 if(!palindrome.empty()) palindrome.erase(palindrome.end()-1);

这句话的位置上,应该是当加入一次,进行完递归之后,将其删除。

class Solution {public:// 用递归的思想// 用tmp记录字符串子串,如果tmp是回文的,则递归判断剩下的是否也是回文的,如果判断到字符串结尾,则将得到的回文vector加入到总的vector里vector
palindrome;vector
> palindromes; vector
> partition(string s) { recurPart(s, 0); return palindromes; } void recurPart(string s, int begin){ if(begin == s.size()) { palindromes.push_back(palindrome); return; } for(int i = begin; i != s.size(); ++i){ string tmp = s.substr(begin, i - begin + 1); // 如果tmp是回文的,则将其加入到palindrome里,再递归 if(isPalindrome(tmp)){ palindrome.push_back(tmp); recurPart(s, i + 1); // 进行下一次前,先将上次加入palindrome的string删掉 if(!palindrome.empty()) palindrome.erase(palindrome.end()-1); } } } bool isPalindrome(string &tmp){ string sTmp = ""; for(int i = tmp.size() - 1; i >= 0; --i){ sTmp += tmp[i]; } if(sTmp.compare(tmp) == 0) return true; return false; }};

转载于:https://www.cnblogs.com/skysand/p/4039063.html

你可能感兴趣的文章
hdu 1846 Brave Game
查看>>
数据库连接历险记
查看>>
抛弃msvcrtXX库
查看>>
血眼龙王传--秋叶青篇
查看>>
Runtime
查看>>
取消git忽略文件
查看>>
Leetcode2--->链表中对应位相加(进位)
查看>>
PXE远程自动安装操作系统
查看>>
java开发知识IO知识之输入输出流以及文件
查看>>
SurfaceViewVideoList网络获取视频播放
查看>>
Oracle 笔记(二)
查看>>
微信公众号开发--访问网络用到的工具类
查看>>
wpf中利用多重绑定实现表中数据越界自动报警
查看>>
为Linux配置常用源:epel和IUS
查看>>
天府地
查看>>
C#高级编程
查看>>
JS实现从照片中裁切自已的肖像
查看>>
使用 https://git.io 缩短 a GitHub.com URL.
查看>>
拷贝、浅拷贝、深拷贝解答
查看>>
NS3 实验脚本的编写步骤
查看>>