ºìÁªLinuxÃÅ»§
Linux°ïÖú

°Ù¶È2014УÕбÊÊÔÌâ

·¢²¼Ê±¼ä:2014-06-20 15:46:01À´Ô´:ºìÁª×÷Õß:velcbo
Ëã·¨ºÍ³ÌÐòÉè¼ÆÌ⣺

1 ÌâÒ⣺

Ò»´±´óÂ¥µÄµ×²ãÓÐ1001¸ùµçÏߣ¬ÕâЩµçÏßÒ»Ö±ÑÓÉìµ½´ó¥¥¶¥£¬ÄãÐèҪȷ¶¨µ×²ãµÄ1001¸öÏßÍ·ºÍÂ¥¶¥µÄ1001´ÎÏßÍ·µÄ¶ÔÓ¦¹ØÏµ¡£ÄãÓÐÒ»¸öµç³Ø£¬Ò»¸öµÆÅÝ£¬ºÍÐí¶àºÜ¶ÌµÄµçÏߣ¬ÄãÐèÒªÉÏÏÂÂ¥¼¸´Î²ÅÄÜÈ·¶¨µçÏß½ÓÍ·µÄ¶ÔÓ¦¹ØÏµ£º

2 ½â´ð£º

×¢Ã÷£ºÕâÀïÿ´ÎÉÏÏÂÂ¥¶¼´ø×Åµç³ØºÍµÆÅÝ£¬ÒÔ¼°Ã¿´Î½Ó¿ÚÁ¬½Ó£¬¶ÔÓ¦½Ó¿ÚµÄ֮ǰÁ¬½Ó¹ýµÄÏß¶¼½«²ð³ý£¬ËùÒÔÏÂÃæ²»ÔÙ˵Ã÷¡£

Ê×ÏȽ«µ×²ãÒ»¶Ô½Ó¿Ú£¨ÕâÀï¼ÙÉèΪ£¨buttom1£¬buttom2£©£©Á¬½ÓÆðÀ´£¬È»ºóÉÏÂ¥£¬¸ù¾ÝÌṩµÄµç³ØºÍµÆÅݵÄÁÁÃð£¬È·¶¨¶¥²ãµÄÒ»¶Ô£¨ÕâÀï¼ÙÉèΪ£¨top1£¬top2£©£©£¬½Ó׎«¶¥²ãµÄÁíÒ»¶ÔÁ¬½ÓÆðÀ´£¨¼ÙÉèΪ£¨top3£¬top4£©£©£¬È»ºóϵײ㣬ȷ¶¨ºÍ£¨top3£¬top4£©¶ÔÓ¦µÄÒ»¶Ô£¨¼ÙÉèΪ£¨buttom3£¬buttom4£©£©£¬È»ºó½«µ×²ãµÄ buttom1ºÍbuttom3Á¬½Ó£¬µ×²ãµÄbuttom2ºÍbuttom4Á¬½Ó£¬ÉÏÂ¥£¬·Ö±ð½«È·¶¨¹ýµÄÁ½¶Ô½»»»¶Ô½Ó£¬¼´ÒÀ´Î²âÊÔ£¨top1£¬top4£©£¬£¨top2£¬top3£©»òÕߣ¨top1£¬top3),(top2,top4)£¬Ö±½ÓµÆÅÝÁÁΪֹ¼´¿ÉÈ·¶¨ÕâËĸö½Ó¿ÚµÄ¶Ô½Ó¹ØÏµ¡£ÕâÑùµÚÒ»´ÎÈ·¶¨4¸ö½Ó¿ÚÐèÒªÉÏÏÂÂ¥3´Î¡£

È»ºó¸ù¾ÝµÚÒ»´ÎÈ·¶¨µÄ4¸ö½Ó¿Ú£¬ÔÚ¶¥²ã·Ö±ðºÍÊ£ÓàµÄ½Ó¿ÚÖÐµÄÆäÖÐËĸö½Ó¿ÚÁ¬½Ó£¬Ïµ½µ×²ã£¬ºÍµÚÒ»´ÎÈ·¶¨Ëĸö½Ó¿ÚÒ»Ñù£¬¼´¿ÉÈ·¶¨8¸ö½Ó¿Ú¡£Õâʱȷ¶¨8¸ùÖ»ÐèÒªÔÚÉÏÃæµÄ»ù´¡ÉϼÓ1´Î¾Í¿ÉÒÔ¡£½ÓÏÂÀ´¾Í¿ÉÒÔÈ·¶¨16¸ö½Ó¿Ú£¬²¢ÒÔ´ËÖ¸ÊýÔö¼Ó£¬´Ó¶øµ½2µÄ10´Î·½£¬¼´1024£¬¼´¿ÉÈ«²¿È·¶¨1001¸ö½Ó¿Ú£¬¶ø´Ó2µÄ3´Î·½µ½2µÄ10´Î·½£¬¹²8´Î.

×îºóµÃ³öµÚÒ»´ÎÈ·¶¨µÄ3´Î¼ÓÉϽÓÏÂÀ´µÄ8´Î£¬¹²Ðè11´Î¼´¿ÉÈ·¶¨ËûÃǵĶÔÓ¦¹ØÏµ¡£

Ëã·¨ºÍ³ÌÐòÉè¼ÆÌ⣺

ÌâÒ⣺

³¤¶ÈΪN£¨NºÜ´ó£©µÄ×Ö·û£¬ÇóÕâ¸ö×Ö·û´®ÀïµÄ×î´ó»ØÎÄ×Ó´®¡£

Ëã·¨£º

×¢£ºÉè×Ö·û´®Êý×éΪstr = char[N];


1 ¶¨Òå±£´æ×î´ó»ØÎÄ×Ó´®³¤¶Èn_max£¬¶¨ÒåÁÙʱ±äÁ¿sub_lengthÓÃÓÚ±£´æÃ¿´Î»ñÈ¡µ½µÄ»ØÎÄ×Ö´®³¤¶È£»

2 ´Ó×Ö·û´®µÄ¿ªÊ¼Î»ÖÿªÊ¼Òƶ¯£¬Ö±µ½×îºó£¨ÕâÀï²»¿¼ÂÇÓÅ»¯Ëã·¨£©¡£¼ÙÉ賤¶ÈΪN£¬iÒ»Ö±µÝÔö£¨i
Ê×ÏÈ£ºÈôi=0,Ôòn_max = 1; ·ñÔòÈôi=N-1,ÔòÖ±½Ó·µ»Øn_max;·ñÔò£¨¼´²»ÔÚͷ⣩£¬ÔÚ½øÈëÑ­»·ÅжÏ×óÓÒÁ½±ß×Ö·ûÏàµÈ֮ǰ£¬ÅжÏstr[i]ÊÇ·ñµÈÓÚstr[i+1],ÊÇÔòÑ­»·Ìõ¼þΪstr[i+1+n] == str[i-n](nΪÏò×óÓÒÁ½±ßÒÆ¶¯µÄ´ÎÊý£¬³õʼ»¯Îª1)£¬ÇÒsub_lenght=(n-1)*2+2£¬·ñÔòÑ­»·Ìõ¼þΪstr[i+n]==str[i-n],ÇÒsub_length=(n-1)*2+1¡£

3 ¸ù¾Ý2ËùµÃµ½µÄsub_lengthÖµ£¬ÒÔ֮ǰµÄn_max±È½Ï£¬Èôsub_length>n_max,Ôòn_max = sub_length¡£

4 µ±Òƶ¯½áÊøÖ®ºó£¬×îÖÕ¼´¿É»ñµÃn_max

±à³ÌʵÏÖ£º

×¢£ºÕâÀï²»¿¼ÂÇÓÅ»¯Ëã·¨£¬Ö»¿¼ÂÇʵÏÖ¹ý³Ì£¬ÔÚÕâÀïֻΪÁ˲âÊÔ£¬¹ÊNÉèÁ˱ȽÏС£¬Îª20.[code]#include
#include
#define N 20

int getpalindrome(char str[])
{
int n_max = 0;
int n = 1;
int sub_length=0;
int i;

for(i=0;i {
n = 1; //ÒòΪ×î¶ÌΪ1£¬ÁÙʱ±äÁ¿
if(i==0)
{ //ÅжÏΪ×Ö·û´®ÆðʼλÖã¬Ôòn_max¸³ÖµÎª1
n = 1;
n_max = n;
}else if(i == N-1)
{ //ÈôÖ¸ÕëÒѾ­Òƶ¯µ½×î⣬Ôò½áÊø·µ»Ø
return n_max;
}else
{ //ÈôÔÚÖм䲿·Ö£¬ÔòÔÚÖ¸ÕëpËùÔÚµÄλÖÃÍùÁ½¸ö·½Ïò±È½ÏÊÇ·ñÓÐÏàͬµÄ×Ö·û£¬ÏàͬÔò¼ÌÐø£¬·ñÔòÒ»´ÎÑ­»·½áÊø
if(str[i] == str[i+1])
{
while(str[i+1+n] == str[i-n]){
n++;
if((i+1+n) >= N || (i-n)<0){
break;
}
}
sub_length = (n-1)*2 + 2; //Ò»´ÎÑ­»·¾ÍÓÐ2¸ö×Ö·û£¬¹ÊÓУ¨n-1£©*2,ÔÙ¼Ó¿ªÊ¼µÄ2¸ö¡£
}else{
while(str[i+n] == str[i-n])
{
n++;
if((i+n)>= N || (i-n)<0){
break;
}
}
sub_length = (n-1)*2 + 1; //Ò»´ÎÑ­»·¾ÍÓÐ2¸ö×Ö·û£¬¹ÊÓУ¨n-1£©*2,ÔÙ¼Ó¿ªÊ¼µÄ1¸ö¡£
}
if(n_max < sub_length)
{ //ÈôµÃµ½µÄÖµ±È֮ǰµÄ´ó£¬Ôòn_maxÖØÐ¸³Öµ
n_max = sub_length;
}
}
}

return n_max;
}

int main(void){
char str[N] = {'1','a','b','a','0','1','a','b','c','d','d','c','b','a','1','b','c','d','d','c'};
int num = 0;
int i;

num = getpalindrome(str);

printf("×Ϊ: %d\n",num);
return 0;
}[/code]ÉÏÃæµÄ³ÌÐòÊä³ö½á¹ûΪ£º

×Ϊ£º10

×÷Õߣºzzp_szu
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ