回文字符串 NYOJ

Posted fzuhyj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了回文字符串 NYOJ相关的知识,希望对你有一定的参考价值。

# include<iostream>
# include<string>
# include<string.h>
# include<queue>
# include<stdio.h>
#include <algorithm>
using namespace std;
int d[1001][1001]; 
int main()
{
      int n,m,i,j;
      cin>>n;
      while(n--)
      {
          char s1[1001],s2[1001];
          scanf("%s",s1);
          int len = strlen(s1)-1;
          for(i=len,j=0;i>=0;i--,j++)
              s2[i] = s1[j];
          
          for(i=0;i<=len;i++)
          {
              for(j=0;j<=len;j++)
            {
                if(s1[i]==s2[j])        
                {
                    if(i==0||j==0)    d[i][j]= 1;
                    else              d[i][j] = d[i-1][j-1] + 1;
                }
                else
                {
                    if(i==0&&j==0)    
                    {
                        d[i][j]= 0;
                        continue;
                    }
                    if(i==0)    
                    {
                        d[i][j]= d[i][j-1];
                        continue;
                    }
                    if(j==0)    
                    {
                        d[i][j]= d[i-1][j];
                        continue;
                    }
                    if(d[i-1][j]>=d[i][j-1])    d[i][j] = d[i-1][j];
                    else                        d[i][j] = d[i][j-1];    
            }    
            }
        }
          printf("%d
",len-d[len][len]+1);
    }
    return 0;
} 

 

以上是关于回文字符串 NYOJ的主要内容,如果未能解决你的问题,请参考以下文章

nyoj 37 回文字符串

nyoj 题目37 回文字符串

NYOJ 37 回文字符串

回文字符串 NYOJ

Manacher算法 , 实例 详解 . NYOJ 最长回文

131. 分割回文串