华为OD机试真题 新系统 2026-09-02 C++【查找幸运数】

目录

题目

思路

Code

题目

题目内容:

在仅由数字组成的字符串中,找出只由 6 或 8 组成的最长连续子串。

输入描述:

输入数字字符串,长度小于 256。

输出描述:

输出所有最长子串,去重后按字典序排序;字符串为空或没有符合子串时输出 [""]。

样例 1

输入:

1688

输出:

["688"]

样例 2

输入:

123

输出:

[""]

样例 3

输入:

88612668

输出:

["668","886"]

思路

整体思路:扫描所有仅含 6/8 的极大连续段,维护最长长度与并列候选集合。

第一步:遇到 6/8 后扩展到连续段末尾。

第二步:更长段出现时清空旧候选,同长度则加入集合去重。

第三步:按字典序输出候选。