忘了啥时候投高途了,然后给我发了一个笔试,前来试试水。前面的选择基本什么都涉及,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后再去更代码吧。
点赞 5
评论 1
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务