इस ट्यूटोरियल में, हम सबसे लंबे कॉमन सबस्ट्रिंग को प्रिंट करने वाले प्रोग्राम पर चर्चा करेंगे।
इसके लिए हमें दो स्ट्रिंग्स जैसे A और B दिए जाएंगे। हमें दो इनपुट स्ट्रिंग्स A और B में सबसे लंबे सबस्ट्रिंग कॉमन को प्रिंट करना होगा।
उदाहरण के लिए, यदि हमें "HelloWorld" और "world Book" दिया जाता है। फिर इस मामले में सबसे लंबा सामान्य विकल्प "दुनिया" होगा।
उदाहरण
#include <iostream> #include <stdlib.h> #include <string.h> using namespace std; void print_lstring(char* X, char* Y, int m, int n){ int longest[m + 1][n + 1]; int len = 0; int row, col; for (int i = 0; i <= m; i++) { for (int j = 0; j <= n; j++) { if (i == 0 || j == 0) longest[i][j] = 0; else if (X[i - 1] == Y[j - 1]) { longest[i][j] = longest[i - 1][j - 1] + 1; if (len < longest[i][j]) { len = longest[i][j]; row = i; col = j; } } else longest[i][j] = 0; } } if (len == 0) { cout << "There exists no common substring"; return; } char* final_str = (char*)malloc((len + 1) * sizeof(char)); while (longest[row][col] != 0) { final_str[--len] = X[row - 1]; row--; col--; } cout << final_str; } int main(){ char X[] = "helloworld"; char Y[] = "worldbook"; int m = strlen(X); int n = strlen(Y); print_lstring(X, Y, m, n); return 0; }
आउटपुट
world