Swift题解

let s1 = readLine()!
let s2 = readLine()!
let a1 = [Character](s1)
let a2 = [Character](s2)
var maxLen = 0
for i in 0 ..< a1.count {
    for j in 0 ..< a2.count {
        var len = 0
        while i + len < a1.count, j + len < a2.count, a1[i + len] == a2[j + len] {
            len += 1
        }
        if len > maxLen {
            maxLen = len
        }
    }
}
print(maxLen)

C题解

int main(void) {
    char s1[300];
    char s2[300];
    while (scanf("%s", s1) != EOF && scanf("%s", s2) != EOF) {
        int len1 = (int)strlen(s1);
        int len2 = (int)strlen(s2);
        int maxLen = 0;
        for(int i = 0; i < len1; i++) {
            for(int j = 0; j < len2; j++) {
                int k = 0;
                while (i + k < len1 && j + k < len2 && s1[i + k] == s2[j + k]) {
                    k++;
                }
                if(k > maxLen) {
                    maxLen = k;
                }
            }
        }
        printf("%d\n", maxLen);
    }
    return  0;
}