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

相关推荐

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