华为OD机试 - 入栈出栈 - 双指针(Java 2023 B卷 100分)

在这里插入图片描述

目录

    • 专栏导读
    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
    • 四、解题思路
    • 五、Java算法源码
    • 六、效果展示
      • 1、输入
      • 2、输出
      • 3、说明

华为OD机试 2023B卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

一、题目描述

向一个空栈中依次存入正整数,假设入栈元素 N (1 <= N <= 2^31-1),按顺序依次为 N_x … N_4、N_3、N_2、N_1。

当元素入栈时,如果 N1=N2+…Ny (y的范围[2,x],1 <= x <= 1000), 则 N1 到 Ny 全部元素出栈,重新入栈新元素 M(M=2*N1)。

如依次向栈存储 6、1、2、3,当存储 6、1、2 时, 栈底至栈顶以此为 [6、1、2]:当存入 3 时,3=2+1, 3、2、1 全部出栈,重新入栈元素 6,(6=2*3) 此时栈中有元素 6, 因为 6=6,所有两个六全部出栈存入 12。 最终栈中只剩一个元素 12。

二、输入描述

使用单个空格隔开的正整数的字符串,如:5 6 7 8,左边的数字先入栈。 输入的正整数个数为 x,1 <= x <= 1000。

三、输出描述

最终栈中存留的元素值,元素值使用空格隔开,如 8 7 6 5,栈顶数字在左边。

输入 输出 说明

四、解题思路

通过java8 Stream表达式(简洁/方便/上档次)快速拆解输入行;

五、Java算法源码


六、效果展示

1、输入

2、输出

3、说明


下一篇:华为OD机试 - 荒岛求生 - 栈Stack(Java 2023 B卷 100分)

本文收录于,华为OD机试(JAVA)真题(A卷+B卷)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

你可能感兴趣的:(搬砖工逆袭Java架构师,华为od,java,python)