题目2 : 回文字符序列

时间限制:2000ms
单点时限:1000ms
内存限制:256MB

描述

给定字符串,求它的回文子序列个数。回文子序列反转字符顺序后仍然与原序列相同。例如字符串aba中,回文子序列为"a", "a", "aa", "b", "aba",共5个。内容相同位置不同的子序列算不同的子序列。

输入

第一行一个整数T,表示数据组数。之后是T组数据,每组数据为一行字符串。

输出

对于每组数据输出一行,格式为"Case #X: Y",X代表数据编号(从1开始),Y为答案。答案对100007取模。

数据范围

1 ≤ T ≤ 30

小数据

字符串长度 ≤ 25

大数据

字符串长度 ≤ 1000

样例输入
5
aba
abcbaddabcba
12111112351121
ccccccc
fdadfa
样例输出
Case #1: 5
Case #2: 277
Case #3: 1333
Case #4: 127
Case #5: 17
#include<iostream>
#include<string>
#include <vector>
const int MOD = 100007;
using namespace std;int getDifferentsSubStr(string str)
{if(str.size()==0)return 0;int len = str.size();if(len==1)return 1;if(len==2){if(str[0]==str[1])return 3;elsereturn 2;}int dp[1000]={0};dp[0]=1;dp[1]= (str[0]==str[1])? 3 : 2;for(int i=2; i<len; i++){dp[i]=(dp[i-1]+1)%MOD;for(int j=0; j<i; j++){if(str[j]==str[i]){dp[i]=(dp[i]+1+getDifferentsSubStr(str.substr(j+1, i-j-1)))%MOD;}}}return  dp[len-1];}int main()
{string str;int strnum;vector<int> res;cin>>strnum;while(strnum--){cin>>str;res.push_back(getDifferentsSubStr(str));}for(int i=0; i<res.size(); i++)cout<<"Case #"<<i+1<<": "<<res[i]<<endl;return 0;
}

  

转载于:https://www.cnblogs.com/aituming/p/4441433.html

编程之美——题目2 : 回文字符序列相关推荐

  1. 编程之美2015资格赛 题目2 : 回文字符序列 [ 区间dp ]

    传送门 题目2 : 回文字符序列 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定字符串,求它的回文子序列个数.回文子序列反转字符顺序后仍然与原序列相同.例如字符串ab ...

  2. 题目2 : 回文字符序列(区间DP)

    时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定字符串,求它的回文子序列个数.回文子序列反转字符顺序后仍然与原序列相同.例如字符串aba中,回文子序列为"a& ...

  3. [动规] hihocoder 1149 回文字符序列

    题目大意 原题链接,给定字符串求回文子序列数量.字符串长度 $len \leq 1000 $. 算法思路 题干比较简单,而且数据量不大,很容易想到使用递推,关键在于如何定义递推中间值和递推式.博主做题 ...

  4. 2003基于栈的回文字符序列判断(C++)

    描述 回文序列是正反读均相同的字符序列,如"abba"和"abdba"均是回文,但是"good"不是回文.请设计一个算法判定给定的字符序列是 ...

  5. 1.7 编程基础之字符串 34 回文子串 python

    http://noi.openjudge.cn/ch0107/34/ """1.7 编程基础之字符串 34 回文子串 http://noi.openjudge.cn/ch ...

  6. 回文字符(第一周技术分享)

    第一篇博客就来写一下这次面试婷婷学姐问我的一个问题吧! 最开始我只会用最笨的办法把每位上的数字都写出来 再去比较首末是否相等去判断是否为回文数. #include <stdio.h> in ...

  7. python找出字符串中的最长回文串子序列

    回文串,即: nums = 'aba' print(nums == nums[::-1]) # True 反转该序列后和之前元素相等 这里我们需要找出给定字符串里的最长回文串,即: nums = 'a ...

  8. 数据结构——用栈解决回文字符问题

    回文 回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文.试写一个算法判定给定的字符序列是否为 ...

  9. LintCode Python 简单级题目 491.回文数

    原题描述: 判断一个正整数是不是回文数. 回文数的定义是,将这个数反转之后,得到的数仍然是同一个数. 注意事项 给的数一定保证是32位正整数,但是反转之后的数就未必了. 您在真实的面试中是否遇到过这个 ...

  10. Openjudge NOI题库1.7编程基础之字符串 34:回文子串

     总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个字符串,输出所有长度至少为2的回文子串. 回文子串即从左往右输出和从右往左输出结果是一样的字符串,比如:abba,cccde ...

最新文章

  1. 苹果曝光无人车新进展,这名华人工程师是主要贡献者
  2. python字符串/元组/列表/字典互转
  3. HDU——2064汉诺塔III
  4. px4原生源码学习四--Nuttx 实时操作系统编程
  5. Bitbucket Cloud的新IP地址
  6. centos7查看进程ps_还在一台台登录网络设备查看日志吗?你太low了
  7. docker 运行mysql镜像_docker 生成mysql镜像启动时自动执行sql
  8. Javascript 加载详解
  9. 基于avr atmega16单片机定时器的 pwm调宽调占空比以及调频率
  10. 使用Project进行项目管理
  11. python编程练习:爬虫爬取全国大江大河实时水情
  12. Redis的优点和缺点
  13. 统计学中几种简单的检验方式
  14. CISCO服务器配置RAID步骤
  15. 云框架研究:openstack基准测试框架rally
  16. oracle-SQL存储过程
  17. 基于MongoDB的学生成绩数据操作
  18. 2020全年小迪网络安全笔记(目录)
  19. Java MD5 VS SAH 加密方法详解
  20. 无论用手工处理还是用计算机进行处理,市场调研的数据处理.doc

热门文章

  1. 因果推断综述及基础方法介绍(二)
  2. 【知识图谱系列】知识图谱表示学习综述 | 近30篇优秀论文串讲
  3. 利用python进行数据分析—五、pandas入门
  4. LeetCode刷题——91. 解码方法
  5. 非递归归并排序详细分析
  6. “李刚畅谈Java编程人生”讲座
  7. 免费讲座:数据库工程实施中的性能保证
  8. 4.3 AlexNet CNN、tensorflow实现——python实战
  9. 通俗理解Meanshift均值漂移算法
  10. 从U盘安装windows/linux操作系统