字符串面试题(七)求字符串的最大公共子串

给定字符串A和B,输出A和B中的最大。

比如A="aocdfe" B="pmcdfa" 公共子串"cdf",输出为3

int longestSubstring(string x, string y) {
    int xlen = x.size();
    int ylen = y.size();
    if (xlen == 0 || ylen == 0) {
        return 0;   
    }
    int max = -1;
    for (int i = 0; i < xlen; i++) {
        for (int j = 0; j < ylen; j++) {
            int m = i, n = j;
            int len = 0;
            while (m < xlen && n < ylen) {
                if (x[m] != y[n]) {
                    break;
                }
                m++;
                n++;
                len++;
            }
            if (len > max) {
                max = len;
            }
        }
    }
    return max;
}

 

 

你可能感兴趣的:(字符串,基础,程序员)