高途 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届秋招笔面经##高途##高途笔试#
全部评论
感觉1个小时有点短啊
点赞
送花
回复
分享
发布于 2022-10-16 20:57 山西

相关推荐

5 5 评论
分享
牛客网
牛客企业服务