博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LIGHTOJ 1044(动态规划)
阅读量:4286 次
发布时间:2019-05-27

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

题意:给你一个字符串,让你找出回文串的最少个数

题解:查询当前字符与前面字符子串是否构成回文串,如果构成则 dp[i] = min(dp[i],dp[j-1]+1);

#include
#include
#include
using namespace std;int dp[1005];char str[1005];bool find(int k,int r){ while(k < r) { if(str[k] == str[r]) k++,r--; else return false; } return true;}int main(){ int n,Case = 1;; scanf("%d",&n); getchar(); while(n--) { scanf("%s",str); int l = strlen(str); for(int i = 0; i < l; i++) { dp[i] = i + 1; for(int j = 0; j <= i; j++) { if(find(j,i)) { if(j == 0) dp[i] = 1; else dp[i] = min(dp[i],dp[j - 1] + 1); } } } printf("Case %d: %d\n",Case++,dp[l-1]); }}

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

你可能感兴趣的文章
matlab 集合运算 交集 并集 差集
查看>>
C++ 给vector去重的三种方法
查看>>
map的详细用法
查看>>
C++初始化函数列表
查看>>
STL各种排序
查看>>
#include<map>
查看>>
z字形扫描
查看>>
相邻数对
查看>>
C++ string 字符串匹配
查看>>
C语言字符串函数大全
查看>>
轮盘赌选择,原理及C++实现
查看>>
C/C++中各种类型int、long、double、char表示范围(最大最小值)
查看>>
《Python爬虫学习系列教程》学习笔记
查看>>
MIC编程(4)——MIC灵活高效的编程方式
查看>>
Apriori算法
查看>>
Python itertools模块详解
查看>>
Apriori算法简介及实现(python)
查看>>
Python中的集合:set与frozenset用法举例
查看>>
python strip()函数 介绍
查看>>
pandas库中数据结构DataFrame的绘制函数
查看>>