字符串回文算法

在一个QQ群里看到一位朋友发这个题目:

假设称正向读和反向读都相同的字符序列为“回文”,例如,“abba”和“abcba”是回文,“abcde”和“ababab”则不是回文。试设计一个算法判别读入的一个以“@”为结束符的字符序列是否是回文

 

 

#include <vcl.h>
#include  < stdio.h >
#pragma  hdrstop

// ---------------------------------------------------------------------------

#pragma  argsused
using   namespace  std;
bool  IsBack(AnsiString);
int  main( int  argc,  char *  argv[])
{
        
bool  b = IsBack( " abcv@bcba " );
        
return   0 ;
}
bool  IsBack(AnsiString str)
{
        
bool  b = true ;
        
int  middlelen = str.Length() / 2 ;
        
for ( int  i = 0 ;i < middlelen;i ++ )
        {
                
char  x = str. operator  [](i + 1 );
                
char  y = str. operator  [](str.Length() - i);
                
if (x == ' @ ' || y == ' @ ' ) // 要是abcv@@cba不算的话,此处应为 if(x=='@'&&y=='@')
                {
                        b
= i == 0 ? false : true ;
                        
break ;
                }
              
if (x != y)
              {
                        b
= false ;
                        
break ;
              }
        }
        
return  b;
}

 

 

你可能感兴趣的:(字符串)