灵犀互娱前端、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。无所谓,反正真正的全栈是多数语言都会
#灵犀互娱##笔试##算法#