doc程序//怎么没法调试dp结构体数组赋值之后,还是0呢。。。
// d_dec29.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "conio.h"
#include "math.h"
#include <vector>
#include <string>
#define MAX_STRING_LEN 255
#include <iostream>
using namespace std;
typedef struct tagDPLCS{
int d;
int r;
}DPLCS;
int InitializeDpLcs(const std::string& str1, const std::string& str2, DPLCS dp[MAX_STRING_LEN][MAX_STRING_LEN])
{
std::string::size_type i,j;
for(i = 1; i <= str1.length(); i++)
{
for(j = 1; j <= str2.length(); j++)
{
if((str1[i - 1] == str2[j - 1]))
{
dp[i][j].d = dp[i - 1][j - 1].d + 1;
dp[i][j].r = 1;
}
else
{
if( dp[i - 1][j].d >= dp[i][j - 1].d )
{
dp[i][j].d = dp[i - 1][j].d;
dp[i][j].r = 2;
}
else
{
dp[i][j].d = dp[i][j - 1].d;
dp[i][j].r = 3;
}
}
}
}
return dp[str1.length()][str2.length()].d;
}
int _tmain(int argc, _TCHAR* argv[])
{
string str1 = "a1b23c";
string str2 = "abc";
string lcs;
DPLCS dp[MAX_STRING_LEN][MAX_STRING_LEN] = {0};
InitializeDpLcs(str1, str2, dp);
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
string str1 = "a1b23c";
string str2 = "abc";
string lcs;
DPLCS dp[MAX_STRING_LEN][MAX_STRING_LEN] = {0};
InitializeDpLcs(str1, str2, dp);
for (int i = 0; i < 10; ++i)
{
cout << "dp[1][" << i << "]:(" << dp[1][i].d << ", " << dp[1][i].r << ")" << endl;
}
system("pause");
return 0;
}