我不确定我是否得到了您的问题,但无论如何,vectors
在 Julia 中是动态数据结构,因此您始终可以使用适当的函数来扩展它,例如pull!()
, append!()
,preapend!()
也可以reshape()
将结果向量变为所需大小的数组。
但可以使用sparse()
矩阵获得上述情况的一种特殊方法:
import Base.zero
Base.zero(ASCIIString)=""
module GSparse
export insertion,deletion,substitude,result
s=sparse(ASCIIString[])
deletion(newval::ASCIIString)=begin
global s
s.n+=1
push!(s.colptr,last(s.colptr))
s[s.m,s.n]=newval
end
insertion(newval::ASCIIString)=begin
global s
s.m+=1
s[s.m,s.n]=newval
end
substitude(newval::ASCIIString)=begin
global s
s.n+=1
s.m+=1
push!(s.colptr,last(s.colptr))
s[s.m,s.n]=newval
end
result()=begin
global s
ret=zeros(ASCIIString,size(s))
le=length(s)
for (i = 1:le)
ret[le-i+1]=s[i]
end
ret
end
end
using GSparse
insertion("test");
insertion("testo");
insertion("testok");
substitude("1estok");
deletion("1stok");
result()
我喜欢这种方法,因为对于大文本,您可以有许多零元素。我也以正向填充数据结构并通过反转创建结果。