求两个串中的第一个最长子串(神州数码以前试题)。如"abractyeyt","dgdsaeactyey"的最大子串为"actyet"。

admin2019-03-29  37

问题 求两个串中的第一个最长子串(神州数码以前试题)。如"abractyeyt","dgdsaeactyey"的最大子串为"actyet"。

选项

答案#include "stdafx.h" char *MaxSubString(char *str1, char *str2) { int i, j, k, index, max=0; for(i=0; str1[i]; i++) for(j=0; str2[j]; j++) { for(k=0; str1[i+k]==str2[j+k] && (str2[i+k] || str1[i+k]); k++); if(k>max){ // 出现大于当前子串长度的子串,则替换子串位置和程度 index = j; max = k; } } char *strResult = (char *)calloc(sizeof(char), max+1); for(i=0; i
解析
转载请注明原文地址:https://kaotiyun.com/show/bRmZ777K
0

最新回复(0)