URAL 1297 Palindrome (回文+中心扩展)

原创 2015年11月19日 19:00:40
#include <stdio.h>

char string[1001];

int main(){

	scanf("%s", string);
	int len = 0;
	int i;
	for (i = 0; string[i] != '\0'; i++)
		len++;

	int maxLen = 0;
	int start;
	int mid, left, right;

	for (mid = 0; mid < len; mid++){
		left = mid - 1; 
		right = mid + 1;
		while (left >= 0 && right < len && string[left] == string[right]){
			if (right - left + 1 > maxLen){
				maxLen = right - left + 1;
				start = left;
			}
			left--;
			right++;
		}
	}

	for (mid = 0; mid < len; mid++){
		left = mid; 
		right = mid + 1;
		while (left >= 0 && right < len && string[left] == string[right]){
			if (right - left + 1 > maxLen){
				maxLen = right - left + 1;
				start = left;
			}
			left--;
			right++;
		}
	}

	if (maxLen == 0){
		printf("%c\n", string[0]);
		return 0;
	}
	int end = start + maxLen - 1;
	for (i = start; i <= end; i++){
		printf("%c", string[i]);
	}
	printf("\n");

	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

ural 1297 Palindrome (后缀数组 最长回文)

以下分析部分摘自 后缀数组两种算法的分析比较 - Localhost 8080 - C++博客
  • whyorwhnt
  • whyorwhnt
  • 2014年06月28日 11:11
  • 619

ural 1297 Palindrome(最长回文子串)

Palindrome Time Limit: 1000MS   Memory Limit: 65536KB   64bit IO Format: %I64d & %I64u ...
  • WEYuLi
  • WEYuLi
  • 2014年11月18日 19:04
  • 459

[ural1297]最长回文子串

我也没有题目啦 就是说给一个字符串求出字串中式回文的最长的字串。。好乱啦。 给定一个字符串,求最长回文子串。 算法分析: 穷举每一位,然后计算以这个字符为中心的最长回文子串。注意这里...
  • huangzhengdoc
  • huangzhengdoc
  • 2016年12月08日 13:41
  • 375

[leetcode]Valid Palindrome (判断回文数 C语言实现)

Valid Palindrome Given a string, determine if it is a palindrome, considering only alphanumeric ch...
  • sanmao0816
  • sanmao0816
  • 2015年03月26日 15:37
  • 905

URAL 1297 Palindrome【后缀数组】求最长回文子串

Description The “U.S. Robots” HQ has just received a rather alarming anonymous letter. It state...
  • Bcwan_
  • Bcwan_
  • 2016年10月11日 03:22
  • 389

URAL 1297 Palindrome(SA 求最长回文子串)

题目链接:Click here~~ 题意: RT。 解题思路: 这题纠结了好久。。。主要是用到了 RMQ,所以我顺手写了个 ST 的模板。结果模板打错,调了1小时+,TAT...
  • dgq8211
  • dgq8211
  • 2013年08月07日 13:23
  • 736

URAL 1297(最长回文串)

题目:http://acm.timus.ru/problem.aspx?space=1&num=1297 题目大意:给你一个字符串,问你输出其中最长的回文串,如果有多个,就输出最早出现的那个。 思路:...
  • u010794465
  • u010794465
  • 2013年10月19日 19:43
  • 616

URAL 1297(Palindrome,后缀数组)最长回文串

把A反过来接一起,然后后缀数组。
  • u013665921
  • u013665921
  • 2014年05月20日 12:28
  • 492

URAL 1297 Palindrome(最长回文子串:后缀数组)

URAL 1297 Palindrome(最长回文子串:后缀数组) 题意:给你一个字符串,要你求出这个串中的最长回文字串,如果存在多个,则输出第一次出现的那个. 分析:论文例题.        首先其...
  • u013480600
  • u013480600
  • 2014年04月17日 17:11
  • 1175

URAL - 1297 Palindrome(后缀数组求最长回文子串)

Description The “U.S. Robots” HQ has just received a rather alarming anonymous letter. It states t...
  • u011345136
  • u011345136
  • 2014年09月26日 21:05
  • 861
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:URAL 1297 Palindrome (回文+中心扩展)
举报原因:
原因补充:

(最多只允许输入30个字)