Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<string.h>
- char str[2010];
- int max(int a,int b){
- return (a > b ? a : b);
- }
- int dp[2010][2010];
- int cal(int i,int j){
- if(i < 0 || j < 0)return 0;
- if(dp[i][j] != -1)return dp[i][j];
- if(str[i] == str[j] && i != j){
- return cal(i-1,j-1) + 1;
- }
- return dp[i][j] = max(cal(i-1,j),cal(i,j-1));
- }
- int main()
- {
- for(int i = 0 ; i < 2010 ; i ++)for(int j = 0 ; j < 2010 ; j ++)dp[i][j] = -1;
- scanf("%s",str);
- int n = strlen(str);
- printf("%d",cal(n-1,n-1));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement