- #include <stdio.h>
- #include <string.h>
- int getLongestSymmetricalLength( char* pString ){
- if( pString == NULL ) return 0;
- int length=1;
- char *pChar = pString;
- while( *pChar != '\\0'){
- char *pFirst = pChar-1;
- char *pLast = pChar+1;
- while( pFirst>=pString && *pLast != '\\0' && *pFirst==*pLast ){
- pFirst--;
- pLast++;
- }
- int newLength = pLast-pFirst-1;
- if( newLength>length)
- length = newLength;
- pFirst = pChar;
- pLast = pChar+1;
- while( pFirst>=pString && *pLast != '\\0' && *pFirst==*pLast ){
- pFirst--;
- pLast++;
- }
- newLength = pLast-pFirst-1;
- if( newLength>length )
- length = newLength;
- pChar++;
- }
- return length;
- }
- int main(){
- char str[100];
- while( scanf("%s",&str) != EOF ){
- printf("%d\\n", getLongestSymmetricalLength(str) );
- }
- return 0;
- }
- //该片段来自于http://www.codesnippet.cn/detail/130220148713.html
来源: http://www.codesnippet.cn/detail/130220148713.html