在遇到力扣题目LC 131时,写了以下代码,结构和python
的是一致的,但在python
下运行的结果和julia
下的不同,代码如下:
function partition(s::AbstractString)
n = length(s)
is_parlindrom = fill(true, n, n)
for i in n:-1:1, j in (i + 1):n
is_parlindrom[i, j] = (s[i] == s[j]) && is_parlindrom[i + 1, j - 1]
end
res = Vector{Vector{String}}()
p = String[]
function dfs!(i::Int)
if i == n + 1
push!(res, p)
@info res
return
end
for j in i: n
if is_parlindrom[i, j]
push!(p, SubString(s, i, j))
dfs!(j + 1)
pop!(p)
end
end
end
dfs(1)
return res
end
输出如下:
julia> partition("aab")
[ Info: [["a", "a", "b"]]
[ Info: [["aa", "b"], ["aa", "b"]]
2-element Array{Array{String,1},1}:
[]
[]
一直搞不懂,为啥res
变量在中间有存到值,但最后返回不出来,是哪里出错了?