[LeetCode]Palindrome Partitioning 找出所有可能的组合回文

news/2024/7/17 23:32:21

给定一个字符串,切割字符串,这样每个子字符串是一个回文字符串。

要找出所有可能的组合。

办法:暴力搜索+回溯

class Solution {
public:
	int *b,n;
	vector<vector<string> >ans;
	void dfs(int id,string &s,int len){
		if(id>=n){
			if(len>0){
				vector<string>vt;
				vt.push_back(s.substr(0,b[0]+1));
				for(int i=1;i<len;++i){
					vt.push_back(s.substr(b[i-1]+1,b[i]-b[i-1]));
				}
				ans.push_back(vt);
			}
			return;
		}
		int j,k;
		b[len]=id;
		dfs(id+1,s,len+1);
		for(j=id+1;j<n;++j){
			for(k=0;id+k<j-k&&s[id+k]==s[j-k];++k);
			if(id+k>=j-k){
				b[len]=j;
				dfs(j+1,s,len+1);
			}
		}
	}
	vector<vector<string> > partition(string s) {
		n=s.size();
		if(n==0)return ans;
        if(n==1){
            vector<string>vt;
            vt.push_back(s);
			ans.push_back(vt);
			return ans;
		}
		b=new int[n];
		dfs(0,s,0);
		return ans;
    }
};


版权声明:本文博主原创文章,博客,未经同意不得转载。






本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/4886250.html,如需转载请自行联系原作者



http://www.niftyadmin.cn/n/1999357.html

相关文章

oracle 更改分区列,ORA-14061: 不能更改索引分区列的数据类型或长度

本文将为您描述ORA-14061: 不能更改索引分区列的数据类型或长度,具体操作过程:修改分区表主键时报错&#xff1a;在行: 2 上开始执行命令时出错 -alter table KC23 modify AAZ210 VARCHAR2(50)错误报告 -SQL 错误: ORA-14061: 不能更改索引分区列的数据类型或长度14061. 00000 …

Windows Mobile 设备中心 for vista 一览

Microsoft Windows Mobile 设备中心 6.1 在6月6日发布了最新版&#xff0c;今天为了能在Vista开发PPC(或Wince设备&#xff09;程序&#xff0c;下载安装了该程序&#xff0c;启动后界面确实很炫&#xff0c;和媒体中心的风格有些类似。不过我用VS2005开发的程序&#xff0c;通…

VC线程同步技术剖析

VC线程同步技术剖析作者&#xff1a;xuefeifei 来源&#xff1a;zz 发表时间&#xff1a;2006-12-09 摘要&#xff1a; 多线程同步技术是计算机软件开发的重要技术&#xff0c;本文对多线程的各种同步技术的原理和实现进行了初步探讨。 关键词&#xff1a; VC6…

oracle 表空间重建,oracle 剔除和重建表空间脚本

oracle 删除和重建表空间脚本调试数据库生成脚本&#xff0c;需要频繁重建表空间/**清除原有表空间重建表空间和用户**/declaretbs varchar2(100):TS_data; --表空间名称tbs_tpm varchar2(100):data_TEMP;--临时表空间名称uname varchar2(100):user;--用户名 密码为用户名小写f…

php rabbitmq 类,RabbitMQ学习之(五)_一个基于PHP的RabbitMQ操作类

Amqp.class.phpclass Amqp{public $e_name;public $q_name;public $k_route;public $channel;public function __construct($config,$e_name,$q_name,$k_route){$this->e_name $e_name;$this->q_name $q_name;$this->k_route $k_route;//创建连接和channel$this-&g…

SQLServer2008备份和恢复

目标&#xff1a;1.理解SQLServer2008R2的备份方式(完整&#xff0c;差异&#xff0c;日志备份)和恢复模式;2.能够进行完整备份&#xff0c;差异备份操作,事务日志备份&#xff0c;并进行恢复操作;3.使用维护计划实现日常的数据库备份操作; 一、SQLServer2008R2的备份恢复 1、恢…

[CareerCup] 3.2 Min Stack 最小栈

3.2 How would you design a stack which, in addition to push and pop, also has a function min which returns the minimum element? Push, pop and min should all operate in O(1) time. LeetCode上的原题&#xff0c;请参见我之前的博客Min Stack 最小栈。 本文转自博客…

C++高效程序设计

C高效程序设计作者&#xff1a;Joris Timmermans译者&#xff1a;Xu Leasun(2003.04.02)(本译文的翻译已获得原作者授权&#xff0c;本译文的版权归雪川原所有&#xff0c;转载请与雪川联系)(本译文首次发表于《程序员》杂志2003年1月刊&#xff0c;感谢《程序员》杂志) 摘要不…