博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]Palindrome Partitioning
阅读量:4150 次
发布时间:2019-05-25

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

class Solution {public:	bool IsPalindrome(string str, int startIdx, int endIdx)	{		while (startIdx < endIdx)		{			if(str[startIdx] != str[endIdx])				return false;			startIdx++;			endIdx--;		}		return true;	}	void DFS(string& str, int startIdx, vector
& curSubStrs, vector
>& result) { if (startIdx == str.size()) { result.push_back(curSubStrs); return; } for (int i = startIdx; i < str.size(); ++i) { if ( IsPalindrome(str, startIdx, i) ) { curSubStrs.push_back(str.substr(startIdx, i-startIdx+1)); DFS(str, i+1, curSubStrs, result); curSubStrs.pop_back(); } } } vector
> partition(string s) { // Start typing your C/C++ solution below // DO NOT write int main() function vector
curSubStrs; vector
> result; DFS(s, 0, curSubStrs, result); return result; }};

second time

class Solution {public:    void partitionUtil(string& s, vector
>& isP, int curIdx, vector
& curPath, vector
>& allPath) { if(curIdx == s.size()) { vector
curStr; // int end = s.size(); for(int i = curPath.size()-1; i >= 0; --i) { curStr.push_back(s.substr(curPath[i], end-curPath[i])); end = curPath[i]; } reverse(curStr.begin(), curStr.end()); allPath.push_back(curStr); return; } for(int i = curIdx; i < s.size(); ++i) { if(isP[curIdx][i]) { curPath.push_back(curIdx); partitionUtil(s, isP, i+1, curPath, allPath); curPath.pop_back(); } } } vector
> partition(string s) { // Start typing your C/C++ solution below // DO NOT write int main() function int n = s.size(); vector
> isP(n, vector
(n, false)); for(int i = n-1; i >= 0; --i) { for(int j = i; j < n; ++j) { if(s[i] == s[j]) isP[i][j] = (j-1 <= i+1) || isP[i+1][j-1]; } } vector
> allPath; vector
curPath; partitionUtil(s, isP, 0, curPath, allPath); return allPath; }};

转载地址:http://bmxti.baihongyu.com/

你可能感兴趣的文章
Scrum 开发方法的实施
查看>>
SpringMVC学习笔记
查看>>
设计模式学习笔记--简单工厂模式
查看>>
设计模式学习笔记-工厂方法模式
查看>>
设计模式学习笔记-抽象工厂模式
查看>>
设计模式学习笔记-单例模式
查看>>
SpringMVC中的组件及各个组件的作用
查看>>
BeanFactory 和 ApplicationContext的区别
查看>>
浅析Spring框架设计
查看>>
ThreadLocal与synchronized的区别
查看>>
常用设计模式的应用场景
查看>>
AbstractWizardFormController
查看>>
Hexo+Github: 博客网站搭建完全教程(看这篇就够了)
查看>>
博客搭建——代码开源
查看>>
PicGo+GitHub:你的最佳免费图床选择!
查看>>
Python GUI之tkinter窗口视窗教程大集合(看这篇就够了)
查看>>
Markdown Emoji表情语法速查表
查看>>
vim的复制粘贴小结
查看>>
Doxygen + Graphviz windows下安装配置(图解)
查看>>
win8 PL2303驱动的问题
查看>>