题解 | #查找两个字符串a,b中的最长公共子串#
查找两个字符串a,b中的最长公共子串
https://www.nowcoder.com/practice/181a1a71c7574266ad07f9739f791506
#include <stdio.h> #include <string.h> int main() { char a[300], b[300]; scanf("%s\n%s", a, b); int lena = strlen(a); int lenb = strlen(b); int max = 0; char an[300]; if (lena < lenb) { for (int i = 0; i < lena; i++) { for (int j = 0; j < lenb; j++) { int n = 0; while (a[i+n] == b[j+n] && a[i+n]!='\0') { n++; } if (n > max) { max = n; strcpy(an, a + i); an[max] = '\0'; } } } } if (lena > lenb) { for (int i = 0; i < lenb; i++) { for (int j = 0; j < lena; j++) { int n = 0; while (a[j+n] == b[i+n] && b[i+n] !='\0') { n++; } if (n > max) { max = n; strcpy(an, b + i); an[max] = '\0'; } } } } printf("%s\n",an); return 0; }