用C++打印最长的公共子字符串的递归方法可以通过以下步骤实现:
以下是一个示例代码:
#include <iostream>
#include <string>
using namespace std;
string longestCommonSubstring(string str1, string str2) {
if (str1.empty() || str2.empty()) {
return "";
}
if (str1.back() == str2.back()) {
return longestCommonSubstring(str1.substr(0, str1.length() - 1), str2.substr(0, str2.length() - 1)) + str1.back();
} else {
string result1 = longestCommonSubstring(str1.substr(0, str1.length() - 1), str2);
string result2 = longestCommonSubstring(str1, str2.substr(0, str2.length() - 1));
return (result1.length() > result2.length()) ? result1 : result2;
}
}
int main() {
string str1 = "abcdefg";
string str2 = "defghij";
string longestSubstring = longestCommonSubstring(str1, str2);
cout << "Longest common substring: " << longestSubstring << endl;
return 0;
}
这段代码使用递归方法找到两个字符串的最长公共子字符串,并将其打印出来。请注意,这只是一个简单的示例,实际应用中可能需要考虑更多的边界情况和优化。
领取专属 10元无门槛券
手把手带您无忧上云