首页 > 代码库 > 回文(未完成)
回文(未完成)
// zuichanghuiwen.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include<iostream> #include<string> #include<stack> using namespace std; void palindrome(string str) { stack<char> sta; //翻转字符串 for (int i = 1; i < str.length(); i++) sta.push(str[i]); string str2(str.length(),"/0"); for (int i = 1; i < str.length(); i++) { str2[i] = sta.top(); sta.pop(); } int m = str.length()-1; //求愿字符串与翻转字符串的最长公共子序列 int n = str2.length()-1; int c[20][20]; for (int i = 1; i <= m; i++) c[i][0] = 0; for (int j = 0; j <= n; j++) c[0][j] = 0; for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) if (str[i] == str2[j]) { c[i][j] = c[i - 1][j - 1]+1; } else c[i][j] = 0; int max = 0, maxi = 0,maxj=0; //重建最大子序列 for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) if (c[i][j] > max) { max = c[i][j]; maxi = i; maxj = j; } for (int i = maxi; i >= maxi - max + 1; i--) cout << str2[i]; } int main() { string str("asddsa"); palindrome(str); while (1); return 0; }
回文(未完成)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。