func lcs(a, b string) string { aLen := len(a) bLen := len(b) if aLen == 0 || bLen == 0 { return "" } else if a[aLen-1] == b[bLen-1] { return lcs(a[:aLen-1], b[:bLen-1]) + string(a[aLen-1]) } x := lcs(a, b[:bLen-1]) y := lcs(a[:aLen-1], b) if len(x) > len(y) { return x } return y }