24. Lua 字符串缓冲

str1 = "xxxxxxxx"
str2 = str1 .. "wwww"

上面代码 str2 被创建后 , 会从 str1 字符串中把所有字符复制到 str2 , 再添加 “wwww” 字符串 , 效率不高
解决方法 : 字符串缓冲

local buff = ""
for line in io.lines() do
	buff = buff .. line .. "\n"
end

-- buff=20(Bytes/L) * 2500 (L) =5000(B) 50k
-- buff .. 20Byte --> 50020B

io.read("*all")

local t = {}
for line in io.lines() do
	t[#t + 1] = line
end
t[ #t + 1 ] = ""
local s = table.concat( t , "\n" )


-- 采用二分算法 连接字符串
function addstring( stack , s )
	stack[#stack + 1 ] = s  -- 将s压入栈
	for i = #stack - 1 , 1 , -1 do
		if #stack[i] > #stack[i+1] then
			break
		end
		stack[i] = stack[i] .. stack[i+1]
		stack[ i + 1 ] = nil
	end
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值