博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
随手练——回文串专题
阅读量:5083 次
发布时间:2019-06-13

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

双重回文数(复杂版)

题目链接:

#include 
#include
using namespace std;int a[20];bool check(int x, int k) { int p = 0; memset(a, 0, sizeof(int) * 20); while (x) { a[p++] = x % k; x /= k; } int i = p - 1, j = 0; while (i > j) { if (a[i--] != a[j++]) return 0; } return 1;}int main() { int N, S, count = 0; cin >> N >> S; for (int i = S + 1; count < N; i++) { int t = 0; for (int j = 2; j <= 10; j++) { if (check(i, j)) t++; if (t == 2) { count++; cout << i << endl; break; } } } return 0;}

 获取一个字符串的全部回文子串

第一种思想:得到字符串的全部子串,判断。

vector
v;bool check(string s) { string s1 = s; reverse(s.begin(), s.end()); if (s.compare(s1) == 0)return 1; return 0;}void get_all_sub(string s,string help,int n) { if (n == s.length()) { if (!help.empty() && check(help)) { v.push_back(help); cout << help << endl; } return; } get_all_sub(s, help, n + 1); get_all_sub(s, help + s[n], n + 1);}
View Code

第二种思想:DP

(dp [ i ] [ j ] 表示 i 到 j 是否是回文串,二维的话 只需要数组的一般就可以了,用的是左下部分,所以 i , j 其实是反过来的)

转换方程: dp[i][j] = dp[i + 1][j - 1] && s[i] == s[j];

二维数组:

#include 
#include
#include
using namespace std;//i,j 表示i到j是否是回文串int dp[1000][1000];string s;void print(int i,int j) { while (i <= j) { cout << s[i++]; } cout << endl;}int main() { cin >> s; for (int i = 0; i < s.length(); i++) { dp[i][i] = 1; } for (int i = 0; i < s.length() - 1; i++) { dp[i + 1][i] = (s[i] == s[i + 1]); } for (int i = 2; i < s.length(); i++) { for (int j = 0; j < s.length(); j++) { if (i <= j + 1)continue; dp[i][j] = dp[i - 1][j + 1] && (s[i] == s[j]); } } for (int i = 0; i < s.length(); i++) { for (int j = 0; j < s.length(); j++) { if (i < j)continue; if (dp[i][j])print(j, i); } } return 0;}
View Code

转载于:https://www.cnblogs.com/czc1999/p/10362872.html

你可能感兴趣的文章
SQL Relay 0.50 发布,数据库负载均衡器
查看>>
Infinispan 5.3.0.Alpha1 发布
查看>>
设计模式学习笔记——原型模式(Prototype)
查看>>
算法普林斯顿
查看>>
Struts2之类范围拦截器和方法拦截器
查看>>
模型层(练习)
查看>>
XML解析技术研究(一)
查看>>
Qt 学习之路 :使用 QJson 处理 JSON
查看>>
NPOI操作Excel导入导出
查看>>
angularJS 移动端焦点图
查看>>
jvm 这我就能会了 擦
查看>>
实战技能:小小微信支付业务,何必虚惊一场
查看>>
17-1 djanjo进阶-路由,视图,模板
查看>>
Shell脚本8种字符串截取方法总结
查看>>
P3254 圆桌问题
查看>>
MapReduce的运行原理
查看>>
Leetcode: Partition List
查看>>
故障转移
查看>>
清空dataset中的某行某列的数据
查看>>
盒模型
查看>>