错一个点,求助
查看原帖
错一个点,求助
326254
LonginusMonkey楼主2022/8/21 11:25
#include<bits/stdc++.h>
using namespace std;
string f[111][111][111];
string Max(string a, string b) {
	if(a.length()>b.length()) {
		return a;
	}
	else
	{
		return b;
	}
}
int main() {
	string a, b, c;
	cin >> a >> b >> c;
	int lena = a.length(), lenb = b.length(), lenc = c.length();
	for(int i=1; i<=lena; ++i) {
		for(int j=1; j<=lenb; ++j) {
			for(int k=1; k<=lenc; ++k) {
				if(a[i-1] == b[j-1] && b[j-1] == c[k-1]) {
					f[i][j][k] = f[i-1][j-1][k-1] + a[i-1];
				}
				else
				{
					f[i][j][k] = Max(f[i-1][j][k], Max(f[i][j-1][k], f[i][j][k-1]));
				}
			}
		}
	}
	cout << f[lena][lenb][lenc];
	return 0;
}
2022/8/21 11:25
加载中...