TiuTiu Zone

while (Just Do IT) {代码虐我千百遍;我待代码如初恋;}

URAL 1297 Palindrome (回文+中心扩展)
#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;
}

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tiutiu2011/article/details/49932089
想对作者说点什么? 我来说一句

C++实现的Palindrome,回文

2011年12月08日 587B 下载

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭