lua删除表中多个相同的元素

--[[--
从表格中删除指定值,返回删除的值的个数
array 数组
value 数组中目标值
removeall 是否都删除(如果不传则默认只删除第一个匹配的值)
local array = {"a", "b", "c", "c"}
print(table.removebyvalue(array, "c", true)) -- 输出 2
]]
function table.removebyvalue(array, value, removeall)
    local c, i, max = 0, 1, #array
    while i <= max do
        if array[i] == value then
            table.remove(array, i)
            c = c + 1
            i = i - 1
            max = max - 1
            if not removeall then break end
        end
        i = i + 1
    end
    return c
end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
顺序表是一种线性数据结构,可以用数组实现。在顺序表插入元素,可以通过将插入位置后面的元素依次后移,然后将要插入的元素放入指定位置。删除元素也类似,将删除位置后面的元素依次前移,覆盖要删除的元素。查找指定元素可以遍历整个顺序表,找到匹配的元素即可。合并两个顺序表可以将两个顺序表的元素依次复制到一个新的顺序表。 以下是一个简单的顺序表实现: ```lua -- 创建一个顺序表 function createList() local list = {} return list end -- 在指定位置插入元素 function insert(list, pos, value) for i = #list, pos, -1 do list[i+1] = list[i] end list[pos] = value end -- 删除指定位置的元素 function remove(list, pos) for i = pos, #list-1 do list[i] = list[i+1] end list[#list] = nil end -- 查找指定元素 function search(list, value) for i = 1, #list do if list[i] == value then return i end end return -1 end -- 合并两个顺序表 function merge(list1, list2) local newList = {} for i = 1, #list1 do newList[i] = list1[i] end for i = 1, #list2 do newList[#newList+1] = list2[i] end return newList end ``` 关于文加密,这是一个比较广泛的话题,有很多种加密方式,比如替换、移位、置换等。常见的文加密方式有“凯撒密码”、“栅栏密码”、“仿射密码”等。这些加密方式都可以用程序实现,具体实现方法可以根据不同的加密方式进行选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱我呦呦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值