码迷,mamicode.com
首页 > 其他好文 > 详细

回文(未完成)

时间:2017-03-29 01:20:47      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:space   rom   str   int   name   入口   .cpp   回文   ==   

// 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;
}

  

回文(未完成)

标签:space   rom   str   int   name   入口   .cpp   回文   ==   

原文地址:http://www.cnblogs.com/linear/p/6637613.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!