2026华为OD机考新系统真题|日志规则逆波兰转换(2026.10.28)

2026华为OD机试真题 10月28日 - 智能日志规则匹配器 华为OD机试真题 新系统【智能日志规则匹配器】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【智能日志规则匹配器】多语言题解。 阅读详情

日志规则逆波兰转换(2026.10.28)

2026年最新华为OD机考题库(按考点分类): 2026年最新华为OD机考题库

题目描述

系统中的日志采集模块支持用户配置日志过滤规则。为了避免每次匹配日志时重新分析规则,需要将中缀逻辑表达式转换为后缀表达式,也称逆波兰表达式(RPN)。

给定一条合法的日志过滤表达式,请输出其对应的后缀表达式。后缀表达式将运算符放在对应的操作数之后,不再需要括号。

表达式的操作数仅包含以下五种日志关键字,必须完全匹配,且区分大小写:

ERROR NETWORK TIMEOUT DISK CPU

支持的运算符如下:

运算符类型含义优先级结合性
NOT前缀一元运算符逻辑非3右结合
AND二元运算符逻辑与2左结合
OR二元运算符逻辑或1左结合

优先级数值越大,运算优先级越高。同级的 AND 或 OR 按从左到右的顺序结合;NOT 为右结合,例如 NOT NOT ERROR 表示 NOT (NOT ERROR)。

表达式可以使用英文圆括号改变运算顺序。括号保证成对出现,嵌套正确。空格可以连续出现,括号可以紧贴关键字;相邻的单词之间至少有一个空格。

输入描述

expression:一个字符串,表示一条合法的日志过滤表达式。表达式长度 1 到 1000,括号嵌套深度不超过 10,相邻单词之间至少有一个空格,括号可以紧贴关键字。

输出描述

返回一个字符串,表示转换后的后缀表达式,操作数与运算符之间用一个英文空格分隔,首尾不含空格。

用例输入 1

"ERROR AND NETWORK"

用例输出 1

"ERROR NETWORK AND"

用例解释 1

  • ERROR 和 NETWORK 是 AND 的两个操作数,先按原顺序输出两个操作数,再输出 AND。

用例输入 2

"ERROR AND (NETWORK OR TIMEOUT)"

用例输出 2

"ERROR NETWORK TIMEOUT OR AND"

用例解释 2

  • 括号内的 NETWORK OR TIMEOUT 先结合,转换为 NETWORK TIMEOUT OR,再与 ERROR 通过 AND 结合。

用例输入 3

"NOT ERROR OR TIMEOUT"

用例输出 3

"ERROR NOT TIMEOUT OR"

用例解释 3

  • NOT 的优先级高于 OR,先将 NOT ERROR 转换为 ERROR NOT,再与 TIMEOUT 通过 OR 结合。

来源

本题来源于网络、非官方材料、仅供学习交流,侵删




🧠 解题思路

第一步:什么是逆波兰(后缀)表达式

平时写的 ERROR AND NETWORK 叫中缀表达式:运算符写在两个操作数中间。后缀表达式把运算符写在它的操作数后面:ERROR NETWORK AND。

后缀表达式不需要括号,也不用管优先级:从左往右读,遇到运算符就作用在它前面刚算出的结果上。例如 ERROR NETWORK TIMEOUT OR AND 的意思是:先算 NETWORK OR TIMEOUT,再和 ERROR 做 AND,也就是 ERROR AND (NETWORK OR TIMEOUT)。

第二步:先把字符串拆成单词

括号可能紧贴关键字,例如 (NETWORK。所以逐个字符扫:空格跳过;(、) 各自单独作为一个单词;其余连续的字母组成一个单词(ERROR、AND、NOT 等)。

第三步:用一个栈暂存运算符

转换规律是:操作数的先后顺序不变,运算符要等它右边的操作数都输出以后才能输出。所以操作数直接输出,运算符先放进一个栈里等着,时机到了再弹出来。从左到右处理每个单词:

  1. 操作数(ERROR 等):直接放进输出;
  2. 左括号:压栈,作为一道“隔板”;
  3. 右括号:不断弹出栈顶运算符放进输出,直到碰到左括号,左括号弹掉扔掉(括号不输出);
  4. NOT:直接压栈。它是写在操作数前面的一元运算符,要等后面的操作数输出以后才轮到它;
  5. AND / OR:入栈之前,先把栈顶那些优先级大于或等于它的运算符依次弹出、放进输出(碰到左括号就停),再把自己压栈;
  6. 全部处理完,把栈里剩下的运算符依次弹出、放进输出。

优先级是 NOT 3、AND 2、OR 1,数字越大越先算。

第四步:为什么第 5 步要弹出“大于或等于”的

  • 栈顶优先级更高:比如栈里是 NOT,现在来了 OR。NOT 应该先算,它的操作数已经输出了,所以先把 NOT 输出;
  • 优先级相等:AND、OR 都是左结合,A OR B OR C 要先算左边的 A OR B,所以前一个 OR 要先输出,得到 A B OR C OR;
  • 栈顶优先级更低:比如栈里是 OR,来了 AND,AND 要先算,OR 留在栈里继续等。

用样例走一遍

样例 2:ERROR AND (NETWORK OR TIMEOUT)

单词动作输出栈(底 → 顶)
ERROR操作数,输出ERROR空
AND栈空,压栈ERRORAND
(压栈ERRORAND (
NETWORK输出ERROR NETWORKAND (
OR栈顶是左括号,停,压栈ERROR NETWORKAND ( OR
TIMEOUT输出ERROR NETWORK TIMEOUTAND ( OR
)弹出 OR,扔掉左括号ERROR NETWORK TIMEOUT ORAND
结束弹出 ANDERROR NETWORK TIMEOUT OR AND空

样例 3:NOT ERROR OR TIMEOUT。NOT 压栈;ERROR 输出;来了 OR,栈顶 NOT 的优先级 3 ≥ 1,弹出 NOT;OR 压栈;TIMEOUT 输出;最后弹出 OR。结果 ERROR NOT TIMEOUT OR。

⚠️ 易错点

  • 括号可能紧贴关键字,拆单词时 (、) 要单独拆出来。
  • NOT 是一元前缀运算符,遇到时直接压栈,不要按二元运算符的规则先弹栈。
  • AND、OR 弹栈的条件是栈顶优先级“大于或等于”当前运算符,写成“大于”会把左结合变成右结合。
  • 弹栈碰到左括号就停;遇到右括号时左括号要弹掉,但不输出。
  • 输出用一个空格连接,首尾不能有空格。

⏱️ 复杂度

时间复杂度:O(n),n 是表达式长度,每个单词进出栈各一次。
空间复杂度:O(n),单词列表、输出和运算符栈。

💻 参考代码(Java)

import java.util.*;

class Solution {
    public String toPostfix(String expression) {
        // 拆分 token,处理括号紧贴关键字的情况
        List<String> tokens = new ArrayList<>();
        int i = 0, n = expression.length();
        while (i < n) {
            char ch = expression.charAt(i);
            if (ch == ' ') {
                i++;
            } else if (ch == '(' || ch == ')') {
                tokens.add(String.valueOf(ch));
                i++;
            } else {
                int j = i;
                while (j < n && expression.charAt(j) != ' ' && expression.charAt(j) != '(' && expression.charAt(j) != ')') j++;
                tokens.add(expression.substring(i, j));
                i = j;
            }
        }

        // 运算符优先级
        Map<String, Integer> priority = new HashMap<>();
        priority.put("OR", 1);
        priority.put("AND", 2);
        priority.put("NOT", 3);

        List<String> output = new ArrayList<>();
        Deque<String> stack = new ArrayDeque<>();

        for (String token : tokens) {
            if (token.equals("(")) {
                stack.push(token);
            } else if (token.equals(")")) {
                // 弹出直到左括号
                while (!stack.isEmpty() && !stack.peek().equals("(")) {
                    output.add(stack.pop());
                }
                stack.pop();
            } else if (token.equals("NOT")) {
                // NOT 为前缀一元运算符,直接入栈
                stack.push(token);
            } else if (token.equals("AND") || token.equals("OR")) {
                // 左结合:弹出优先级大于等于当前运算符的栈顶运算符
                while (!stack.isEmpty() && !stack.peek().equals("(") && priority.get(stack.peek()) >= priority.get(token)) {
                    output.add(stack.pop());
                }
                stack.push(token);
            } else {
                // 操作数直接输出
                output.add(token);
            }
        }

        while (!stack.isEmpty()) {
            output.add(stack.pop());
        }

        return String.join(" ", output);
    }
}

💻 参考代码(C++)

class Solution {
public:
    string toPostfix(string expression) {
        // 拆分 token,处理括号紧贴关键字的情况
        vector<string> tokens;
        int i = 0, n = expression.size();
        while (i < n) {
            char ch = expression[i];
            if (ch == ' ') {
                i++;
            } else if (ch == '(' || ch == ')') {
                tokens.push_back(string(1, ch));
                i++;
            } else {
                int j = i;
                while (j < n && expression[j] != ' ' && expression[j] != '(' && expression[j] != ')') j++;
                tokens.push_back(expression.substr(i, j - i));
                i = j;
            }
        }

        // 运算符优先级
        map<string, int> priority;
        priority["OR"] = 1;
        priority["AND"] = 2;
        priority["NOT"] = 3;

        vector<string> output;
        vector<string> st;

        for (string token : tokens) {
            if (token == "(") {
                st.push_back(token);
            } else if (token == ")") {
                // 弹出直到左括号
                while (!st.empty() && st.back() != "(") {
                    output.push_back(st.back());
                    st.pop_back();
                }
                st.pop_back();
            } else if (token == "NOT") {
                // NOT 为前缀一元运算符,直接入栈
                st.push_back(token);
            } else if (token == "AND" || token == "OR") {
                // 左结合:弹出优先级大于等于当前运算符的栈顶运算符
                while (!st.empty() && st.back() != "(" && priority[st.back()] >= priority[token]) {
                    output.push_back(st.back());
                    st.pop_back();
                }
                st.push_back(token);
            } else {
                // 操作数直接输出
                output.push_back(token);
            }
        }

        while (!st.empty()) {
            output.push_back(st.back());
            st.pop_back();
        }

        string result;
        for (int k = 0; k < (int)output.size(); k++) {
            if (k > 0) result += " ";
            result += output[k];
        }
        return result;
    }
};

💻 参考代码(Python)

class Solution:
    def toPostfix(self, expression: str) -> str:
        # 拆分 token,处理括号紧贴关键字的情况
        tokens = []
        i = 0
        n = len(expression)
        while i < n:
            ch = expression[i]
            if ch == ' ':
                i += 1
            elif ch == '(' or ch == ')':
                tokens.append(ch)
                i += 1
            else:
                j = i
                while j < n and expression[j] != ' ' and expression[j] != '(' and expression[j] != ')':
                    j += 1
                tokens.append(expression[i:j])
                i = j

        # 运算符优先级
        priority = {'OR': 1, 'AND': 2, 'NOT': 3}
        output = []
        stack = []

        for token in tokens:
            if token == '(':
                stack.append(token)
            elif token == ')':
                # 弹出直到左括号
                while stack and stack[-1] != '(':
                    output.append(stack.pop())
                stack.pop()
            elif token == 'NOT':
                # NOT 为前缀一元运算符,直接入栈
                stack.append(token)
            elif token == 'AND' or token == 'OR':
                # 左结合:弹出优先级大于等于当前运算符的栈顶运算符
                while stack and stack[-1] != '(' and priority[stack[-1]] >= priority[token]:
                    output.append(stack.pop())
                stack.append(token)
            else:
                # 操作数直接输出
                output.append(token)

        while stack:
            output.append(stack.pop())

        return ' '.join(output)

💻 参考代码(JavaScript)

class Solution {
    toPostfix(expression) {
        // 拆分 token,处理括号紧贴关键字的情况
        const tokens = [];
        let i = 0;
        const n = expression.length;
        while (i < n) {
            const ch = expression[i];
            if (ch === ' ') {
                i++;
            } else if (ch === '(' || ch === ')') {
                tokens.push(ch);
                i++;
            } else {
                let j = i;
                while (j < n && expression[j] !== ' ' && expression[j] !== '(' && expression[j] !== ')') j++;
                tokens.push(expression.substring(i, j));
                i = j;
            }
        }

        // 运算符优先级
        const priority = { 'OR': 1, 'AND': 2, 'NOT': 3 };
        const output = [];
        const stack = [];

        for (const token of tokens) {
            if (token === '(') {
                stack.push(token);
            } else if (token === ')') {
                // 弹出直到左括号
                while (stack.length > 0 && stack[stack.length - 1] !== '(') {
                    output.push(stack.pop());
                }
                stack.pop();
            } else if (token === 'NOT') {
                // NOT 为前缀一元运算符,直接入栈
                stack.push(token);
            } else if (token === 'AND' || token === 'OR') {
                // 左结合:弹出优先级大于等于当前运算符的栈顶运算符
                while (stack.length > 0 && stack[stack.length - 1] !== '(' && priority[stack[stack.length - 1]] >= priority[token]) {
                    output.push(stack.pop());
                }
                stack.push(token);
            } else {
                // 操作数直接输出
                output.push(token);
            }
        }

        while (stack.length > 0) {
            output.push(stack.pop());
        }

        return output.join(' ');
    }
}

module.exports = Solution;
别再傻傻分不清了!用Design Compiler和PrimeTime实操对比PBA与GBA模式 本文深度解析静态时序分析(STA)中Design Compiler与PrimeTime工具的PBA与GBA模式差异,通过实际案例演示两种模式在转换时间计算、时钟路径分析等方面的对比,并提供工程实践中模式选择的策略与调试技巧,帮助工程师在芯片设计流程中平衡精度与效率。 阅读详情

相关推荐

从Jira到Notion:用Sequential Thinking重构你的敏捷工作流(含GPT-6配置模板)

本文探讨了如何利用Sequential Thinking这一AI认知模型,重构敏捷开发工作流。通过连接Jira、Notion等工具,构建动态依赖图谱,实现从被动响应到主动规划的转变。文章提供了详细的配置教程和GPT-6配置模板,帮助团队实现任务自动拆解、智能看板生成与跨平台协调,从而提升项目管理效率。

gpt4scribbler的博客 205

2026年最新华为OD机考题库(按OD考点分类汇总)

本题库基于网络真题交叉验证,涵盖华为OD机考高频考点,如滑动窗口、双指针、前缀和、DFS/BFS、栈队列等,每题提供解题思路、复杂度分析与优化代码。2026新题库聚焦算法实战,覆盖15道典型题目,关联LeetCode Hot100及同类题型,助力高效备考。欢迎反馈纠错,共同提升。

be_Newcode的博客 908

USB-Blaster在Win11报错?3分钟搞定驱动兼容性问题(Quartus 21.4实测)

本文针对Windows 11系统下USB-Blaster驱动安装问题,提供了一套快速解决方案。通过优化驱动安装流程、绕过签名验证及设备管理器高级技巧,帮助开发者在3分钟内解决Quartus 21.4的兼容性问题,提升FPGA调试效率。

weixin_30772105的博客 293

Scrum 敏捷框架完全指南

形式化的质量检查清单,只有满足 DoD 的增量才能交付。

Cat_fish_snow的博客 423

uds协议之can总线程序升级

uds协议简介 如何利用uds协议升级 升级流程 uds服务类型介绍

fangye945a的博客 1万+

还在用iReport 5.6.0?手把手教你用JasperSoft Studio 6.8.0设计报表(附JDK 11+兼容方案)

本文详细介绍了从iReport 5.6.0迁移到JasperSoft Studio 6.8.0的全过程,包括JDK 11+环境配置、项目迁移实战、高级特性应用及常见问题解决方案。帮助开发者高效完成报表生成工具的升级,提升开发体验和报表性能。

weixin_30687051的博客 407

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 329

四阶龙格库塔法求解一次常微分方程组(python实现)

之前在博客发布了关于使用四阶龙格库塔方法求解一次常微分方程组的文章,由于代码缺少具体的验证,部分朋友可能存在疑问,因此这里打算再重新写一篇博客来验证一下程序的正确性,另外,这里是使用python语言来实现的。

HelloWorldTM的博客 8543

把 KV Cache 压到 FP4:BitDecoding-FP4 的算法-系统协同设计复盘

长上下文推理卡在KV Cache的显存与带宽上,而现有FP4方案要么精度崩、要么速度废。这篇文章复盘BitDecoding-FP4如何用三个算法补丁加一个系统重构,在B300上把服务吞吐提升2.4–3.0倍,精度几乎不掉。

helloagent的博客 311

从零实现深度学习框架——理解正则化(一)

本文介绍解决过拟合与欠拟合的方法——正则化,主要介绍L1和L2正则化。

日积月累,天道酬勤 3394

ROS 之 使用yocs_velocity_smoother对机器人速度进行限制

yocs_velocity_smoother是一个速度、加速度限制器,用来防止robot navigation的速度/转速过快,加速度/快减速过大。Bound incoming velocity messages according to robot velocity and acceleration limits. The velocity smoother nodelet runs together with the kobuki_node to apply robot’s velocity and .

https://shixuebin.gitee.io/hexo-blog/ 2623

【算法拾光】链表 哈希表|K个一组翻转链表 + 两数之和

K个一组翻转链表需分段反转,借助哑节点与前驱指针维护连接,避免断链;两数之和利用哈希表实现O(1)查找,空间换时间,高效定位目标组合。前者考察链表指针操作,后者聚焦映射关系构建,均为面试高频题。

wuqingyigexiaoba的博客 330

黑猫带你学eMMC协议第1篇:全网最全emmc协议中文详讲,这份学习框架图,你值得拥有!!!(持续更新中...)

黑猫带你学eMMC协议第7篇:全网最全emmc写保护详解(write protect) 黑猫带你学eMMC协议第8篇:emmc可靠写详解(Write Reliability) 黑猫带你学eMMC协议第9篇:emmc的分区配置(partitioning) 黑猫带你学eMMC协议第10篇:eMMC命令队列详解(CMDQ) 黑猫带你学eMMC协议第11篇:eMMC擦除详解(erase/trim/discard/sanitize/secure erase/secure trim…) 黑猫带你学eMMC协议第12篇:

黑猫奥利奥的博客 2万+

排序算法深度笔记(下):非比较类排序的线性突破与工程边界

排序算法时间复杂度额外空间复杂度稳定性是否基于比较选择排序O(N^2)(O(1))不稳定是冒泡排序O(N^2)(O(1))稳定是插入排序O(N^2)(O(1))稳定是归并排序O(N\log N)(O(N))稳定是快速排序O(N\log N)O(log N)不稳定是堆排序O(N\log N)O(1)不稳定是计数排序(O(N + M))O(M))稳定否基数排序O(N)稳定否桶排序平均O(N) / 最坏O(N^2)

2401_87069538的博客 603

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

优选算法:分治-归并排序

交易逆序对的总数

Wangshijie1015的博客 147

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

算法日常・每日刷题--<动态规划>42

本题为“不相交的线”,与最长公共子序列问题相似。使用动态规划求解:定义 dp[i][j] 表示 nums1[0:i] 与 nums2[0:j] 的最大不相交连线数。若元素相等,则继承左上值加1;否则取上方或左方最大值。最终返回 dp[m][n],即两数组的最大不相交连线数。时间复杂度 O(mn),空间复杂度 O(mn)。

2503_92261635的博客 24

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

408 算法 06|堆与 Top-K:最小的 10 个数,到底该用数组还是堆

2022(42) 找 100 万个数里最小的 10 个,官方给了"10 元素有序数组"和"大根堆"两种答案。我把两种都实现并数了比较次数:k=10 时两者几乎打平,k=10000 时堆少 111 倍。另附 2021(42) 计数排序的比较次数与稳定性实测。

m0_56226131的博客 437

408 算法 04|主元素与三元组最小距离:两种“扫描时做决定“的思路

2013(41) 的主元素用摩尔投票一遍选出候选,但真正的考点是"选完必须验票";2020(41) 的三元组最小距离,三指针每次只挪最小的那个,靠的是 D=2×(max−min) 这个恒等式。两套完整 C 代码加真实输出,附官方评分档位表。

m0_56226131的博客 425

牛客周赛165C题(前后缀性质,递推,排序,枚举)

题目大意:给定长度为 `n` 的数组,选择 `k ∈ [1,n]`,将前 `k` 个元素整体翻转,后面的元素不变。要求操作后的整个数组非递减,统计满足条件的 `k` 的数量。题目链接:https://ac.nowcoder.com/acm/contest/141721/C。时间复杂度:O(nlogn)

2501_94316951的博客 174

算法64,字母异位词分组

代码核心思路是:互为字母异位词的字符串,在对其字符进行排序后,一定会得到相同的字符串。因此,可以将排序后的字符串作为哈希表的键(Key)来进行分组。

sheshibenniaodan的博客 195

【MPC 算法】Python 实战:模型预测控制(MPC)算法原理与代码实现

本文介绍模型预测控制(MPC)原理与Python实现。MPC通过滚动优化预测未来状态,结合系统模型、目标函数与约束条件,动态生成最优控制序列。以一阶温度系统为例,使用CVXPY构建凸优化问题,实现加热功率的智能调控。代码包含模型预测、目标函数设计(含温度跟踪与控制平滑惩罚)、输入约束及滚动更新机制。仿真结果表明,MPC能快速稳定温度至目标值60℃,且控制动作平滑合理,体现其在复杂系统中的优越性。

赖德发的博客 48

算法61,判定是否为字符重排

两字符串能互为重排 ⇔。

sheshibenniaodan的博客 221

算法日常・每日刷题--<动态规划>32

给定严格递增的正整数数组,求最长斐波那契子序列长度。使用二维DP,dp[i][j]表示以arr[i]、arr[j]为最后两项的序列长度,初始化均为2。通过哈希表快速查找前一项target = arr[j] - arr[i],若存在且下标小于i,则状态转移:dp[i][j] = dp[k][i] + 1。遍历更新全局最大长度,最终若结果小于3则返回0。时间复杂度O(n²),空间复杂度O(n²)。

2503_92261635的博客 181

【前缀和+复合离散化】题解:双色矩形(two)_数据结构_算法优化_预处理_二维前缀和_STL_C++算法竞赛

给定一个 $n \times n$ 的黑白棋盘,初始按 $i+j$ 奇偶染色,经 $k$ 个格子颜色翻转后,求子矩形中黑白格子数差的绝对值最大值。由于 $n$ 可达 $10^9$,但 $k \leq 50$,可离散化关键点。枚举所有由修改点构成的矩形及其四边向外扩展(共 $16$ 种扩展方式),利用二维前缀和快速计算变化量,结合奇偶性判断多出的格子颜色,最终取最大绝对差。时间复杂度为 $O(k^4)$,在 $k \leq 50$ 下可行。

YLCHUP的博客 202

算法札记:几何分布在算法题UVA1262的运用

集卡问题求解核心:将集齐n种优惠券的过程分为n个阶段,每个阶段期望购买次数为 $ \frac{n}{k} $(k为剩余种类数),总期望为 $ n \cdot H_n $(调和数)。通过自洽方程推导单阶段期望,无需几何分布或无穷级数,逻辑清晰且适用于大一水平。例如,n=5时期望约11.42,非5。题目要求以带分数形式输出精确结果,算法上需累加分数并化简。

Keven_11的博客 374

算法62&&63,存在重复元素

判断整数数组中是否有任意元素出现至少两次。:判断数组中是否存在两个。,且索引差值的绝对值。

sheshibenniaodan的博客 96
上一篇: 2026华为OD机考新系统真题|山区救援路线规划(2026.11.01)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值