编程之美——题目2 : 回文字符序列
题目2 : 回文字符序列
描述
给定字符串,求它的回文子序列个数。回文子序列反转字符顺序后仍然与原序列相同。例如字符串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 : 回文字符序列相关推荐
- 编程之美2015资格赛 题目2 : 回文字符序列 [ 区间dp ]
传送门 题目2 : 回文字符序列 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定字符串,求它的回文子序列个数.回文子序列反转字符顺序后仍然与原序列相同.例如字符串ab ...
- 题目2 : 回文字符序列(区间DP)
时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定字符串,求它的回文子序列个数.回文子序列反转字符顺序后仍然与原序列相同.例如字符串aba中,回文子序列为"a& ...
- [动规] hihocoder 1149 回文字符序列
题目大意 原题链接,给定字符串求回文子序列数量.字符串长度 $len \leq 1000 $. 算法思路 题干比较简单,而且数据量不大,很容易想到使用递推,关键在于如何定义递推中间值和递推式.博主做题 ...
- 2003基于栈的回文字符序列判断(C++)
描述 回文序列是正反读均相同的字符序列,如"abba"和"abdba"均是回文,但是"good"不是回文.请设计一个算法判定给定的字符序列是 ...
- 1.7 编程基础之字符串 34 回文子串 python
http://noi.openjudge.cn/ch0107/34/ """1.7 编程基础之字符串 34 回文子串 http://noi.openjudge.cn/ch ...
- 回文字符(第一周技术分享)
第一篇博客就来写一下这次面试婷婷学姐问我的一个问题吧! 最开始我只会用最笨的办法把每位上的数字都写出来 再去比较首末是否相等去判断是否为回文数. #include <stdio.h> in ...
- python找出字符串中的最长回文串子序列
回文串,即: nums = 'aba' print(nums == nums[::-1]) # True 反转该序列后和之前元素相等 这里我们需要找出给定字符串里的最长回文串,即: nums = 'a ...
- 数据结构——用栈解决回文字符问题
回文 回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文.试写一个算法判定给定的字符序列是否为 ...
- LintCode Python 简单级题目 491.回文数
原题描述: 判断一个正整数是不是回文数. 回文数的定义是,将这个数反转之后,得到的数仍然是同一个数. 注意事项 给的数一定保证是32位正整数,但是反转之后的数就未必了. 您在真实的面试中是否遇到过这个 ...
- Openjudge NOI题库1.7编程基础之字符串 34:回文子串
总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个字符串,输出所有长度至少为2的回文子串. 回文子串即从左往右输出和从右往左输出结果是一样的字符串,比如:abba,cccde ...
最新文章
- 苹果曝光无人车新进展,这名华人工程师是主要贡献者
- python字符串/元组/列表/字典互转
- HDU——2064汉诺塔III
- px4原生源码学习四--Nuttx 实时操作系统编程
- Bitbucket Cloud的新IP地址
- centos7查看进程ps_还在一台台登录网络设备查看日志吗?你太low了
- docker 运行mysql镜像_docker 生成mysql镜像启动时自动执行sql
- Javascript 加载详解
- 基于avr atmega16单片机定时器的 pwm调宽调占空比以及调频率
- 使用Project进行项目管理
- python编程练习:爬虫爬取全国大江大河实时水情
- Redis的优点和缺点
- 统计学中几种简单的检验方式
- CISCO服务器配置RAID步骤
- 云框架研究:openstack基准测试框架rally
- oracle-SQL存储过程
- 基于MongoDB的学生成绩数据操作
- 2020全年小迪网络安全笔记(目录)
- Java MD5 VS SAH 加密方法详解
- 无论用手工处理还是用计算机进行处理,市场调研的数据处理.doc