高途 2022.10.14 笔试 特别水~
忘了啥时候投高途了,然后给我发了一个笔试,前来试试水。
前面的选择基本什么都涉及,C,java的,爱考构造函数 显示什么的,给我的感觉像是本科java考试那种,竟纠结这种东西。
笔试题难度很水很水,水的有点像小米的笔试,真的就是 面试难度。
1、第一题是*,.的正则匹配,这个没啥难度,基本就是 考虑好 *, .就可以,太简单而且应该能找到原题,不细说思路了。
package gaotu.t01;
import java.util.Scanner;
/**
* @author turbozhao
* @date 2022/10/14 19:04
* @verison 1.0
*/
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String a = in.nextLine(), b = in.nextLine();
System.out.println(process(a, b));
}
public static boolean process(String a, String b){
int m = a.length(), n = b.length();
boolean[][] dp = new boolean[m+1][n+1];
//a[0...i-1] 和 b[0...j-1] 匹配上吗
dp[0][0] = true;
for (int i = 0; i <= m; i++){
for(int j = 1; j <= n; j++){
if(j < n && b.charAt(j) == '*'){
continue;
}
if(i >= 1 && b.charAt(j-1) != '*'){
dp[i][j] = dp[i-1][j-1] &&
(b.charAt(j-1) == '.' ||
b.charAt(j-1) == a.charAt(i-1));
}else if(b.charAt(j-1) == '*'){
boolean p1 = (j - 2 >= 0 && dp[i][j-2]);
boolean p2 = ( ( (i-1)>= 0) && dp[i-1][j] &&
((j-2)>=0) && (a.charAt(i-1) == b.charAt(j-2) ||
b.charAt(j-2) == '.'));
dp[i][j] = p1 || p2;
}
}
}
return dp[m][n];
}
}
2、第二题是回文串判断,给一个正整数 判断是不是回文,真的水的不行,思路太直观了,也没有什么可以说的。
package gaotu.t02;
import java.util.Scanner;
/**
* @author turbozhao
* @date 2022/10/14 19:11
* @verison 1.0
*/
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s = in.nextLine();
int n = s.length();
for(int i = 0; i <= n/2+1 && i < n; i++){
if(s.charAt(i) != s.charAt(n-i-1)){
System.out.println("false");
return;
}
}
System.out.println("true");
}
}
3、第三题是括号判断是否合法,基本你学过数据结构这种应该都遇到过的课后题,知道用栈这个数据结构,解出来基本没啥难度。
package gaotu.t03;
import java.util.Scanner;
import java.util.Stack;
/**
* @author turbozhao
* @date 2022/10/14 19:15
* @verison 1.0
*/
public class Main {
public static void main(String[] args) {
Scanner in= new Scanner(System.in);
String s = in.nextLine();
Stack<Character> stack = new Stack<>();
for(int i = 0; i < s.length(); i++){
char c = s.charAt(i);
if(c == '('){
stack.add(')');
}else if(c == '['){
stack.add(']');
}else if(c == '{'){
stack.add('}');
}else{
if(stack.isEmpty() || stack.pop() != c){
System.out.println("false");
return;
}
}
}
if(stack.isEmpty()){
System.out.println("true");
}else{
System.out.println("false");
}
}
}
这个笔试时间是 6.00-10.00,随便选择一个时间都可以,时长1个小时,所以我10.00后再去更代码吧。
#23届秋招笔面经##高途##高途笔试#
三奇智元机器人科技有限公司公司福利 65人发布
查看22道真题和解析
