本题为2024年9月19日华为-秋招机考原题
华为机考的介绍点击这里
设计一个程序来处理特定的数组分析问题。
给定一个非负整数数组arr,其中每个整数用其十六进制表示中的数字之和来表示其“权重”(权重计算是基于十六进制表示中每位数字的和,0 ~ 9代表权重0~ 9,权重A:10、B:11、C:12、D:13、E:14、F:15)。
通过之前几道栈基础题,我们可以总结一个规律: 对于每个元素,需要考虑它前面若干个数的影响时,可以使用栈来解决。
栈1:每一个右括号,需要寻找之前离它最近的左括号
栈2:每一个元素,需要寻找之前连续的两个相同元素
栈3:每一个数x,需要寻找之前连续若干个数的和等于x。