Programul citește de la tastatură, de pe prima linie, șirul de caractere s1. De pe a doua linie se va citi șirul s2.
Programul va afișa pe ecran un șir de caractere care apare ca subsecvență în ambele siruri și are lungime maximă. Dacă sunt mai multe astfel de șiruri, se va afișa cel care începe pe poziția cea mai din stânga din primul șir.
Exemplu:
Input:
Tema poemului citat o reprezinta conditia omului de geniu
Conditia omului de geniu este redata in poemul citat
Output:
onditia omului de geniu
Răspunsuri la întrebare
Răspuns de
4
► PROGRAM C++
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char s1[1000], s2[1000], substr[1000], maxsubstr[1000] = "";
cin.getline(s1, 1000);
cin.getline(s2, 1000);
//Pentru fiecare subsecventa din s1 dintre i si j
for (int i = 0; i < strlen(s1); i++) {
for (int j = i; j <= strlen(s1); j++) {
strncpy(substr, s1 + i, j - i + 1);
substr[j - i + 1] = 0;
//Daca aceasta subsecventa apare in s2, verifica daca e maxima si copiaza
if (strstr(s2, substr)) {
if (strlen(substr) > strlen(maxsubstr))
strcpy(maxsubstr, substr);
}
//Daca nu apare treci la i urmator
else break;;
}
}
cout << maxsubstr;
}
Anexe:
Conditia
Tema poemului citat o reprezinta conditia omului de geniu
Conditia
Alte întrebări interesante
Limba română,
8 ani în urmă
Engleza,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Sirurile s1 și s2 vor avea cel mult 1000 de caractere și vor fi formate din litere ale alfabetului englez și spații.
Caracterele din secvența comună găsită trebuie să coincidă cu exactitate (c != C)