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-17 20:00
第一题在力扣上错的
点赞 回复 分享
发布于 2020-08-14 10:22
只能说第一题B栈的测试用例太少了,放力扣上是跑不过的。
点赞 回复 分享
发布于 2020-08-14 09:55
大佬,第一题我有个疑问,像nums[0] + nums[1] * nums[2] + nums[3]这种,前面是加减,后面是乘除的情况,我从你的代码里看不出是否能包含这种情况
点赞 回复 分享
发布于 2020-08-14 09:53
第一题arr的值不是1到10吗?第21行为什么要判断啊
点赞 回复 分享
发布于 2020-08-13 20:53
这笔试题估计全是AC吧
点赞 回复 分享
发布于 2020-08-13 20:39
话说第一题+-*/没有优先级吗?
点赞 回复 分享
发布于 2020-08-13 20:38

相关推荐

找工作勤劳小蜜蜂:自我描述部分太差,完全看不出想从事什么行业什么岗位,也看不出想在哪个地区发展,这样 会让HR很犹豫,从而把你简历否决掉。现在企业都很注重员工稳定性和专注性,特别对于热爱本行业的员工。 你实习的工作又太传统的it开发(老旧),这部分公司已经趋于被淘汰,新兴的互联网服务业,比如物流,电商,新传媒,游戏开发和传统的It开发有天然区别。不是说传统It开发不行,而是就业岗位太少,基本趋于饱和,很多老骨头还能坚持,不需要新血液。 工作区域(比如长三角,珠三角,成渝)等也是HR考虑的因素之一,也是要你有个坚定的决心。否则去几天,人跑了,HR会被用人单位骂死。
点赞 评论 收藏
分享
评论
2
7
分享

创作者周榜

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