博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 131.Palindrome Partitioning (分割回文串)
阅读量:2179 次
发布时间:2019-05-01

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

题目描述:

给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。

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

示例:

输入: "aab"输出:[  ["aa","b"],  ["a","a","b"]]

 

AC C++ Solution:

解题思路:

循环遍历字符串,检查substr(0,i)是否是回文。如果是,则在子字符串的其余部分递归调用dfs():substr(i + 1,length)。到目前为止,将当前的回文分区保留在dfs()的'path'参数中。到达字符串末尾时,在结果中添加当前分区。

代码:

class Solution {public:    vector
> partition(string s) { vector
> ret; if(s.empty()) return ret; vector
path; dfs(0, s, path, ret); return ret; } void dfs(int index, string& s, vector
& path, vector
>& ret) { if(index == s.size()) { ret.push_back(path); return; } for(int i = index; i < s.size(); ++i) { if(isPalindrome(s, index, i)) { path.push_back(s.substr(index, i - index + 1)); dfs(i+1, s, path, ret); path.pop_back(); } } } bool isPalindrome(const string& s, int start, int end) { while(start <= end) { if(s[start++] != s[end--]) return false; } return true; }};

 

 

 

 

 

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

你可能感兴趣的文章
iOS常用宏定义
查看>>
强引用 软引用 弱引用 虚引用
查看>>
数据类型 java转换
查看>>
"NetworkError: 400 Bad Request - http://172.16.47.117:8088/rhip/**/####t/approval?date=976
查看>>
mybatis 根据 数据库表 自动生成 实体
查看>>
win10将IE11兼容ie10
查看>>
checkbox设置字体颜色
查看>>
第一篇 HelloWorld.java重新学起
查看>>
ORACLE表空间扩张
查看>>
orcal 循环执行sql
查看>>
web.xml配置监听器,加载数据库信息配置文件ServletContextListener
查看>>
结构型模式之桥接模式(Bridge)
查看>>
行为型模式之状态模式(State)
查看>>
行为型模式之策略模式(Strategy)
查看>>
行为型模式之模板方法模式(TemplateMethod)
查看>>
行为型模式之访问者模式(Visitor)
查看>>
大小端详解
查看>>
source insight使用方法简介
查看>>
<stdarg.h>头文件的使用
查看>>
C++/C 宏定义(define)中# ## 的含义 宏拼接
查看>>