You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lua多维数组连续重复序列查找脚本qty=4时结果异常问题

问题根源

你的脚本当前实现的是统计长度为qty的连续子序列在数组中出现的总次数,但你实际需要的是检测是否存在连续qty个完全相同的子数组(即同一个子数组连续重复qty次)。当qty=4时,原数组中确实存在两个不同位置的长度为4的子序列(第1-4个元素、第3-6个元素)完全相同,所以脚本输出了FOUND;但这两个子序列并非连续重复的相同子数组,因此不符合你的预期。

修复后的脚本
data = {{1,2,3},{1,2,1},{1,2,3},{1,2,1},{1,2,3},{1,2,1}}
qty = 4 -- dynamic variables

function find_sequence(qty)
    if qty < 1 or qty > #data then
        print("INVALID INPUT or NOT ENOUGH DATA")
        return
    end

    local found = false
    -- 遍历每个可能的起始位置,检查连续qty个元素是否完全相同
    for i = 1, #data - qty + 1 do
        local target = table.concat(data[i])
        local is_duplicate = true
        -- 验证后续qty-1个元素是否与目标一致
        for j = i + 1, i + qty - 1 do
            if table.concat(data[j]) ~= target then
                is_duplicate = false
                break
            end
        end
        if is_duplicate then
            found = true
            local seq_str = string.rep(target .. " ", qty):sub(1, -2)
            print("FOUND:", seq_str:gsub("%d", "%1 "), "Occurs starting at index:", i)
        end
    end

    if not found then
        print("NOT FOUND")
    end
end

find_sequence(qty)
修改说明
  • 核心逻辑调整为:对每个起始索引i,以第i个元素为基准,检查后续qty-1个元素是否完全一致
  • 仅当连续qty个元素全部相同时,才判定为找到符合要求的序列
  • 输出时标注序列的起始索引,便于定位位置

测试qty=4时,原数组中不存在连续4个相同的子数组,因此会输出NOT FOUND,符合你的预期。

内容的提问来源于stack exchange,提问作者atlas oser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 01:13:18