您的位置:首页 > 其它

分割 回文字符串

2015-10-19 19:00 246 查看
给定一个字符串s,将s分割成一些子串,使每个子串都是回文串。


返回s所有可能的回文串分割方案。

样例

给出 s = “aab”,返回

[

["aa","b"],

["a","a","b"]


]

最后的 结果集 为什么还是 嵌套的vector

实现:

//判断是否为 回文字符串
bool func1(const string& str)
{
if (str == "")
return true;
int length = str.length();
const char* begin = &str[0];
const char* end   = &str[length - 1];
// O(n)
while(*begin == *end)
{
if (begin + 1 == end || begin == end)
return true;
++begin;
--end;
}
return false;
}

//将字符串分割
void func2(const string& str)
{
int length = str.length();
for (int i = 0; i <= length; ++i)
{
string temp(str, i, j - 1); // 按for循环分割放入temp
vecString.push_back(temp);  // vector<string> vecStri
}
for (auto s : vecString)
{
if (func1(s))
RETURN.push_back(s)  // vector<string> RETURN
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: