B站后端开发笔试题

B站的笔试题,题目我就不写了,直接贴代码
第一题:递归
 boolean result = false;
	 public boolean Game24Points (int[] arr) {
	        
		 if(arr == null || arr.length == 0) {
			 return false;
		 }
		 f(arr, 1, arr[0]);
		 return result;
	 }
	 public void f(int[] arr, int index,int sum) {
		 if(index >= arr.length || result == true) {
			 if(sum == 24) {
				 result = true;
			
			 }
			 return;
		 }
		 f(arr, index+1, sum + arr[index]);
		 f(arr, index+1, sum - arr[index]);
		 f(arr, index+1, sum * arr[index]);
		 if(arr[index]!= 0) {
			 f(arr, index+1, sum / arr[index]);
		 }
		 
	 }
第二题:利用栈
 public boolean IsValidExp (String s) {
	       
		 Stack<Character> stack = new Stack<>();
		 for(int i = 0; i < s.length(); i++) {
			 char ch = s.charAt(i);
			 switch (ch) {
			case '{':
				stack.push('{');
				break;
			case '[':
				stack.push('[');
				break;
			case '(':
				stack.push('(');
				break;
			case '}':
			{
				if(stack.isEmpty()) {
					return false;
				}
				if(stack.peek() == '{') {
					stack.pop();
				} else {
					return false;
				}
			}
				break;
			case ']':
			{
				if(stack.isEmpty()) {
					return false;
				}
				if(stack.peek() == '[') {
					stack.pop();
				} else {
					return false;
				}
			}
				break;
			case ')':
			{	
				if(stack.isEmpty()) {
				return false;
			    }
				if(stack.peek() == '(') {
					stack.pop();
				} else {
					return false;
				}
			}
				break;
			default:
				break;
			}
		 }
		 if(stack.isEmpty()) {
			 return true;
		 } else {
			 return false;
		 }
	
 }
第三题:贪心
 public int GetCoinCount (int N) {
	     int money = 1024 - N;
	     int count = 0;
	     count += money/64;
	     money -= (64 * (money/64));
	     count += money / 16;
	     money -= (16 * (money/16));
	     count += money / 4;
	     money -= (4 * (money/4));
	     count += money / 1;
	     return count;
	 }




#笔试题目##哔哩哔哩#
全部评论
24点我觉得好迷惑啊,不用考虑运算符优先级啥的吗
2 回复 分享
发布于 2020-08-13 20:40
话说第一题+-*/没有优先级吗?
点赞 回复 分享
发布于 2020-08-13 20:38
这笔试题估计全是AC吧
点赞 回复 分享
发布于 2020-08-13 20:39
第一题arr的值不是1到10吗?第21行为什么要判断啊
点赞 回复 分享
发布于 2020-08-13 20:53
大佬,第一题我有个疑问,像nums[0] + nums[1] * nums[2] + nums[3]这种,前面是加减,后面是乘除的情况,我从你的代码里看不出是否能包含这种情况
点赞 回复 分享
发布于 2020-08-14 09:53
只能说第一题B栈的测试用例太少了,放力扣上是跑不过的。
点赞 回复 分享
发布于 2020-08-14 09:55
第一题在力扣上错的
点赞 回复 分享
发布于 2020-08-14 10:22
楼主,你这只贴代码,没有题目,让没参加的人如何参考呀😂😂
点赞 回复 分享
发布于 2020-08-17 20:00

相关推荐

2024-12-17 19:24
门头沟学院 Java
黑皮白袜臭脚体育生:看你后备隐藏能源多不多,最坏的情况就是每个星期的三天课程都不在周末,那么每个星期公司那边请一天半假,半天假请上午,上午正常上课,早点溜去请病假或者中午去请病假,然后坐高铁回公司,记得提前请学校那边实训课下午的病假,就说肚子痛,然后下午就公司上班,第二个实训周同样,但病假理由是牙齿痛,像肚子痛和牙齿痛这种校医院不方便查,会同意你出去检查的,很多时候都不需要你的检查报告,这里的问题就是最坏情况时距离过远的话可能要坐飞机才能赶上,然后请假的话不一定请了就有回应,可能要等老师,然后距离不远不近的情况到公司了也是迟到,得想个说辞掩盖一下,顺便晚上多加点班补下时间,特殊情况特殊处理,正常不建议加班常态化,这样每个星期可以多凑出来半天,老师面子也有了公司那边也不至于无法交差,就是有点费存粮,如果哪个星期的三天课有一天或两天在周末的话那就更好应对了。实习还是建议去,学校的课懂的都懂
点赞 评论 收藏
分享
评论
2
7
分享

创作者周榜

更多
牛客网
牛客企业服务