LeetCode 131. Palindrome Partitioning
来源:互联网 发布:福建网络干部培训 编辑:程序博客网 时间:2024/05/16 12:35
Given a string s, partition s such that every substring of the partition is a palindrome.
Return all possible palindrome partitioning of s.
For example, given s = "aab"
,
Return
[ ["aa","b"], ["a","a","b"] ]
Use a pointer to keep tracking the left substr. Whenever we found a palindrome substring, push it into path vector until the pos reaches the end.
#include <string>#include <iostream>using namespace std;bool isPalindrome(string tmp) { if(tmp.size() <= 1) return true; int i = 0; int j = tmp.size() - 1; while(i <= j) { if(tmp[i] != tmp[j]) return false; i++; j--; } return true;}void partition(string s, int pos, vector<string>& path, vector< vector<string> >& res) { if(pos == s.size()) { res.push_back(path); return; } for(int i = pos; i < s.size(); ++i) { string tmp = s.substr(pos, i - pos + 1); if(isPalindrome(tmp)) { path.push_back(tmp); partition(s, i + 1, path, res); path.pop_back(); } }}vector< vector<string> > partition(string s) { if(s.size() == 0) return {}; vector< vector<string> > res; vector<string> path; partition(s, 0, path, res); return res;}int main(void) { vector< vector<string> > res = partition("abcb"); for(int i = 0; i < res.size(); ++i) { for(int j = 0; j < res[i].size(); ++j) { cout << res[i][j] << ","; } cout << endl; }}
0 0
- LeetCode 131. Palindrome Partitioning
- [LeetCode]131.Palindrome Partitioning
- [Leetcode] 131. Palindrome Partitioning
- [leetcode] 131.Palindrome Partitioning
- [LeetCode]131. Palindrome Partitioning
- 131. Palindrome Partitioning LeetCode
- Leetcode 131. Palindrome Partitioning
- LeetCode 131. Palindrome Partitioning
- LeetCode *** 131. Palindrome Partitioning
- LeetCode 131. Palindrome Partitioning
- LeetCode-131.Palindrome Partitioning
- 【leetcode】131. Palindrome Partitioning
- [leetcode] 131. Palindrome Partitioning
- 【Leetcode】131. Palindrome Partitioning
- [LeetCode] 131. Palindrome Partitioning
- Leetcode-131. Palindrome Partitioning
- 【LeetCode】131. Palindrome Partitioning
- Leetcode 131. Palindrome Partitioning
- Windows/Linux下的常用command资料收藏
- Android学习(29) --ListView
- 中国马的跳法
- android 通用圆角控件
- 接口测试
- LeetCode 131. Palindrome Partitioning
- 国际马的跳法
- Android Canvas的save(),saveLayer()和restore()浅谈
- 图解StreamingContext、DStream、Receiver 第三讲spark streaming
- 0083.使用Scala和Java实战Spark Streaming开发第二讲Spark Streaming
- 网络名词
- 细说JavaScript 导出 上万条Excel数据
- Unity3d 实现顶点动画
- X210官方uboot配置编译实践1~2