8.31虾皮测开笔试

#深圳虾皮信息科技有限公司# #笔试#
单选 多选 编程

题都简单,就是编程第一题是acm模式的,输入格式是[1,1,2,3,4]这样的,而且数组大小在输入数组之后才给,琢磨了半天才处理好输入
以及编程第二题说要O(logn)的算法但是直接暴力也ac,没搞懂他啥意思
虾皮是不是海笔,我看牛客上说这学历厂我这破双非也给我发笔了
全部评论

相关推荐

服了,又是一道没见过的算法,力扣都搜不到的那种,个人评估中等题可惜没撕出来。我简历也没啥算法经历为什么不给我出 HOT100 呢题目是解布尔方程,一共五个符号,0、1、|、&、^,表达式忽略优先级从左往右计算。现在加入变量 X,X 赋值 1 或者 0,每个 X 值可以不同,求 X 组合使得表达式结果为0,输出一个即可。例如输入 1|0&X^1 输出 1输入 X&X,输出 00(或 10 或 01,输出一个即可)我复盘的答案如下import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);char[] s = sc.nextLine().toCharArray();boolean f0 = false, f1 = false;List<Integer> ans0 = new ArrayList<>();List<Integer> ans1 = new ArrayList<>();if (s[0] == '1') {f1 = true;} else if (s[0] == '0') {f0 = true;} else {f0 = f1 = true;ans0.add(0);ans1.add(1);}for (int i = 1; i < s.length; i += 2) {if (s[i] == '&') {if (s[i + 1] == '1') {;} else if (s[i + 1] == '0') {f0 = true;f1 = false;} else {ans0.add(0);ans1.add(1);}} else if (s[i] == '|') {if (s[i + 1] == '1') {f0 = false;f1 = true;} else if (s[i + 1] == '0') {;} else {ans0.add(0);ans1.add(1);}} else {if (s[i + 1] == '1') {f0 = f1;f1 = f0;List<Integer> tmp = ans0;ans0 = ans1;ans1 = tmp;} else if (s[i + 1] == '0') {f0 = f1;f1 = f0;List<Integer> tmp = ans0;ans0 = ans1;ans1 = tmp;} else {if (f0) {ans0.add(0);ans1.add(1);} else {ans0.add(1);ans1.add(0);}}}}if (f0) {for (int i = 0; i < ans0.size(); i++) {System.out.print(ans0.get(i));}} else {System.out.println("NO ANSWER");}sc.close();}}
查看1道真题和解析
点赞 评论 收藏
分享
怎么我还不通知啊也不知道是不是进下个流程了
投递深圳虾皮信息科技有限公司等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务