华为OD机考2025B卷 - 删除重复数字后的最大数字(Java & Python& JS & C++ & C )

最新华为OD机试

真题目录:点击查看目录
华为OD面试真题精选:点击立即查看

2025华为od 机试2025B卷-华为机考OD2025年B卷

题目描述

给定一个由纯数字组成以字符串表示的数值,现要求字符串中的每个数字最多只能出现2次,超过的需要进行删除;

删除某个重复的数字后,其它数字相对位置保持不变。

如”34533″,数字3重复超过2次,需要删除其中一个3,删除第一个3后获得最大数值”4533″

请返回经过删除操作后的最大的数值,以字符串表示。

输入描述

第一行为一个纯数字组成的字符串,长度范围:[1,100000]

输出描述

输出经过删除操作后的最大的数值

示例1

输入

34533

输出

4533

说明

示例2

输入

5445795045

输出

5479504

说明

解题思路

类似题,可以参考题解:
316. 去除重复字母 - 力扣(LeetCode)

题目解读

  1. 删除多余的数字:字符串中每个数字最多只能出现两次,若某个数字出现超过两次,则需要删除多余的次数。例如,字符串 34533 中的数字 3 出现了三次,超过了两次限制,需要删除一次 3

  2. 保持相对位置:在删除多余数字后,数字的相对顺序必须保持不变。即在删除多余数字后,剩余的数字排列顺序与原字符串中相同。

  3. 最大化数值:题目要求删除后得到的结果应该是最大可能的数值字符串。例如,从 34533 中删除第一个 3 后得到 4533,这是可能的最大数值。

示例解析

示例1
  • 输入:34533
  • 过程:
    • 数字 3 出现了三次,超过了限制。我们删除第一个 3
    • 删除后的字符串为 4533,这是最大值。
  • 输出:4533
示例2
  • 输入:5445795045
  • 过程:
    • 数字 45 出现了三次,需要删除多余的 45
    • 删除最靠前的 45

你可能感兴趣的:(最新华为OD机试真题,华为OD机试真题,(Java/JS/Py/C),华为od,java,python,javascript,c++)