灵犀互娱前端、java、终端笔试。算法只能用java吗

我投的前端,写算法的时候只有Java。虽然不太熟,毕竟科班学过,用java写过游戏,勉强A了1和3题,100%。第二题其实也简单,但是对java字符串函数不太熟。

第一题,括号匹配,经典数据结构栈的题,闭眼写。

import java.util.Stack;

public class Main {
	public static boolean isValid(String s) {
	  Stack<Character> stack = new Stack<>();
		  for (char c : s.toCharArray()) {
			  if (c == '(' || c == '{' || c == '[') {
				  stack.push(c);
		  } else {
	  if (stack.isEmpty()) {
		  return false;
	  }
	  char top = stack.pop();
	  if ((c == ')' && top != '(') || (c == '}' && top != '{') || (c == ']' && top != '[')) {
		  return false;
	  }
	}
}
	return stack.isEmpty();
}

public static void main(String[] args) {
	Scanner sn=new Scanner(System.in);
  while(sn.hasNextLine()){
	String aa=sn.nextLine();
	System.out.ln(!isValid(aa));
  }
}

第二题,一个长串 test="asdapplebananaegg" match=['apple','egg'],大概是这样吧。输入输出比较麻烦,就一行,还要分割test和match。然后根据match数组中的向,找到长串test中的位置,然后以数组[i,j]的形式输出。最终输出二维数组。A:0%。一个测试用例都没骗到。

第三题,找最小因数组成的整数。比如,输入48,输出68.输入192,输出388.因为3*8*8=192

public static int findNum(int a) {
  if (a == 0) {
  	return 0;
  }

  int result = 0;
  int count = 0;

  for (int i = 9; i >= 2; i--) {
	while (a % i == 0) {
	  result += i * Math.pow(10, count);
	  count++;
	  a /= i;
	}
  }

  if (a != 1) {
  	return 0;
  }

	return result;
}

有人问前端还用java?主要是系统有问题,只能选Java。无所谓,反正真正的全栈是多数语言都会

#灵犀互娱##笔试##算法#
全部评论
但是因为想第二题,没注意时间,后面的游戏题好像是一分的忘记做了。。。还有个游戏经历论述题啥的,没做。
点赞 回复 分享
发布于 2023-08-19 11:53 广东
我和你就第二题一样,处理这个输入给我整麻了,输出二维数组还得拼接括号逗号空格,硬是整了二十分钟才过,纯纯的逆天
点赞 回复 分享
发布于 2023-08-19 12:03 陕西

相关推荐

01-14 15:08
东南大学 Java
点赞 评论 收藏
分享
评论
2
4
分享

创作者周榜

更多
牛客网
牛客企业服务