海能达笔试

三道题有俩题很简单,直接网页上ac的,此题只通过50%

//不一样的计算机只有 加减和异或运算  + - ^ 且异或的优先级最高
// 输入
//3+5^2-9
// 计算过程:3+(5^2)-9 = 1 
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String s = sc.next();
    long x = 0;
    ArrayDeque<Long> nums = new ArrayDeque<>();
    ArrayDeque<Character> op = new ArrayDeque<>();
    for (int i = 0; i < s.length(); i++) {
        if (s.charAt(i) >= '0' && s.charAt(i) <= '9') {
            x = x * 10 + s.charAt(i) - '0';
        } else {
            if (!op.isEmpty() && op.peekFirst() == '^') {
                op.pop();
                nums.push(nums.pop() ^ x);
            } else {
                nums.push(x);
            }
            x = 0;
            op.push(s.charAt(i));
        }
    }
    if (!op.isEmpty() && op.peekFirst() == '^') {
        op.pop();
        nums.push(nums.pop() ^ x);
    } else {
        nums.push(x);
    }
    while (!op.isEmpty()) {
        long a = nums.pop();
        long b = nums.pop();
        char pop = op.pop();
        if (pop == '+') {
            nums.push(a + b);
        } else {
            nums.push(b - a);
        }
    }

    System.out.println(nums.peekFirst());
}
#海能达#
全部评论
感觉比c的难多了😂
1
送花
回复
分享
发布于 2022-09-28 23:17 广西
大神就是牛什么都可以搞定
点赞
送花
回复
分享
发布于 2022-09-28 17:30 河南
滴滴
校招火热招聘中
官网直投
剩下50%,怎么也过不了😅
点赞
送花
回复
分享
发布于 2022-09-29 10:49 四川
… 三道题全ak 花了四十分试卷全做完了 我怀疑根本不招人
点赞
送花
回复
分享
发布于 2022-09-29 15:18 湖北
这题用+和-分割字符串,然后每个字符串再用^分割求异或。最后求+-,ac了
点赞
送花
回复
分享
发布于 2022-09-29 17:40 重庆
为什么海能达一面28号没有一点通知是不是已经挂了
点赞
送花
回复
分享
发布于 2022-10-07 17:33 湖南

相关推荐

1 2 评论
分享
牛客网
牛客企业服务