当前位置: 首页 > news >正文

最大的外包公司郑州网站seo顾问

最大的外包公司,郑州网站seo顾问,玉树网站建设,诸城 建设外贸网站划分成回文串 Partitioning by Palindromes 题面翻译 回文子串(palind) 问题描述: 当一个字符串正序和反序是完全相同时,我们称之为“回文串”。例如“racecar”就是一个回文串,而“fastcar”就不是。现在给一个字符串s,把它分…

划分成回文串 Partitioning by Palindromes

题面翻译

回文子串(palind)

问题描述:

当一个字符串正序和反序是完全相同时,我们称之为“回文串”。例如“racecar”就是一个回文串,而“fastcar”就不是。现在给一个字符串s,把它分割成若干个互不相交的回文子串,求分割的回文子串的最少个数。

输入格式:

第一行为正整数t(≤10),表示数据组数;接下来t行,每行一个完全由小写字母组成的字符串,长度不超过1000。

输出格式:

对于每组数据,输出最少回文子串数。

由 @C919 提供翻译

题目描述

PDF

输入格式

输出格式

样例 #1

样例输入 #1

3
racecar
fastcar
aaadbccb

样例输出 #1

1
7
3

solution

采用动态规划的思想

初始状态为dp[i]=i+1,即一个字符串str.substr(0,i+1)最多包涵i+1一个回文串,建立状态转移方程dp[i]=min(dp[j]-1,dp[i]),其中子串str.substr(j,i-j+1)为一个回文串,dp[i]表示子串str.substr(0,i+1) 最少有回文子串的数目

#include <iostream>
#include <cstring>
#include <cstdio>#define N 10000using namespace std;bool isPalindrome(string s, int i, int j) {while (i < j) {if (s[i] != s[j]) {return false;} else {i++;j--;}}return true;
}int main() {int n;cin >> n;while (n--) {int dp[N] = {0};dp[0] = 1;string str;cin >> str;int l = str.length();for (int i = 1; i < l; ++i) {dp[i] = i + 1;for (int j = 0; j <= i; ++j) {if (isPalindrome(str, j, i)) {dp[i] = min(dp[j - 1] + 1, dp[i]); // 状态转移方程}}}cout << dp[l - 1] << endl;}return 0;
}
http://www.qdjiajiao.com/news/1000.html

相关文章:

  • 郑州比较正规的装修公司徐州seo公司
  • 集团网站建设网络公司武汉seo推广优化公司
  • 中国民航机场建设集团公司网站种子搜索
  • 广州做淘宝的化妆品网站好免费下载百度软件
  • 做图专业软件下载网站有哪些seo技术专员招聘
  • 个人网站建设公司北京网络营销策划公司
  • 聊城哪里做网站seo综合诊断工具
  • 扬州市建设局招标网站深圳市seo点击排名软件价格
  • 做网站是不是很简单直通车怎么开
  • 做实验网站可以建网站的网络公司有哪些
  • 如何提高网站的知名度单页面seo搜索引擎优化
  • 一站式的手机网站制作刷外链网站
  • 网站建设到发布2012sevser网站快速排名优化价格
  • dede网站怎么做微信小程序bt兔子磁力搜索引擎最新版
  • 全能网站建设教程近期出现的病毒叫什么
  • 个网站能申请贝宝支付接口google关键词查询工具
  • 小规模公司需要交哪些税网站建设与优化
  • 门户网站代码结构百度账号人工申诉
  • 硅藻泥网站怎么做建站推广网站
  • 公司网站运营免费推广
  • 青岛网站设计公司联系方式汕尾网站seo
  • seo网站分析案例网站页面的优化
  • 建筑工程信息网站网推资源渠道
  • 做购物网站骗人线上宣传推广方式
  • 做的比较好的美食网站有哪些制作网页app
  • 设计本装修家居宁波seo公司推荐
  • ps做网站设计稿美国疫情最新数据消息
  • 东莞南城房价郑州seo
  • 做导购网站多少钱百度推广员工工资怎么样
  • 前几年做那个网站致富市场推广方案怎么写