Easy approach ! have a look


#1

int sol(vector<vector>&dp,string& A,string& B,int m,int n){
if(n<0||m<0)return 0;
if(dp[m][n]!=-1)return dp[m][n];
if(A[m]==B[n]) return dp[m][n]=sol(dp,A,B,m-1,n-1)+1;

 return dp[m][n]=max(sol(dp,A,B,m-1,n),sol(dp,A,B,m,n-1));

}
int Solution::solve(string A) {
int n=A.length();
string temp=A;
vector<vector>dp(n,vector(n,-1));
reverse(A.begin(),A.end());
return sol(dp,A,temp,n-1,n-1);
}


#2

mg :eggplant: :eggplant::eggplant::eggplant::eggplant::eggplant::eggplant::eggplant::eggplant::eggplant::eggplant::eggplant::eggplant::eggplant::eggplant::eggplant::eggplant::eggplant::eggplant::eggplant::eggplant::eggplant::eggplant::eggplant::eggplant::eggplant::eggplant::eggplant: