博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Palindrome Partitioning --回文切割 深搜(重重)
阅读量:4106 次
发布时间:2019-05-25

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

题目:

解答:

深搜

代码:

class Solution {public:	vector
> partition(string s) { int mark[300]; vector
> result; DFS(s, s, mark, 0, result); return result; } void DFS(string orgin, string s, int mark[], int len, vector< vector
> &result) { if (s == "") { string s1 = ""; string s2 = orgin; vector
res; for (int j = 0; j < len; j++) { s1 = s2.substr(0, mark[j]); res.push_back(s1); s2 = s2.substr(mark[j], s2.size() - mark[j]); } result.push_back(res); } else { int i; for (i = 1; i <= s.length(); i++) { string tempstr; tempstr = s.substr(0, i); if (ispalindrome(tempstr)) { mark[len] = i; tempstr = s.substr(i, s.length() - i); DFS(orgin, tempstr, mark, 1+len, result); } } } }private: bool ispalindrome(string s) { int begin = 0; int end = s.length() - 1; while (begin < end) { if (s[begin] != s[end]) return false; else { ++begin; --end; } } return true; }};

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

你可能感兴趣的文章
VS2010点滴——不能将参数 1 从“const char [11]”转换为“LPCWSTR”
查看>>
error C2065: “CString”: 未声明的标识符
查看>>
Building MFC application with /MD[d] (CRT dll version)requires MFC shared dll version~~~~
查看>>
error C2668: “pow”: 对重载函数的调用不明确
查看>>
详解C语言字节对齐
查看>>
Long Long、__int64使用总结
查看>>
c语言内存分配函数
查看>>
c语言内存分配函数之间的区别
查看>>
二维数组和指针的一些感悟
查看>>
二维数组和二级指针
查看>>
VC让对话框显示就最大化
查看>>
Unicode和多字节字符集 (MBCS) 杂谈
查看>>
CString GetBuffer() 与releasebuffer()的使用
查看>>
CString ,BSTR ,LPCTSTR之间关系和区别
查看>>
vs2008无法执行添加/移除操作,因为代码元素**是只读的
查看>>
创建定时器SetTimer(1,1000,NULL)
查看>>
GDI绘图
查看>>
[VC++6.0]如何设置和获取IP地址控件的内容
查看>>
VC++多线程编程
查看>>
VC 线程通信的3种方法
查看>>