Solve LCS through recursion
#include <iostream>
#include <cstring>
using namespace std;
int f(string s1,string s2)
{
if(s1.length()==0||s2.length()==0)
return 0;
if(s1[0]==s2[0])
return 1+f(s1.substr(1),s2.substr(1));
else
return max(f(s1.substr(1),s2),f(s1,s2.substr(1)));
}
int main()
{
cout<<f("ABCD","ABD")<<endl;
return 0;
}