不懂就问,我这代码水平是不是很烂...

是这样的,某boss交谈了一个小公司,给我发了笔试题,如图,我花了快五个小时才完善提交,大伙们看看啥水平。因为是手写要求,我拍照上传的,后边红色是IDEA运行成功后发给HR的,结果未通过笔试。

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        char[] str = {'a','A','z','Z','b','B','c','C','x','X','d','D','w','W','e','E','v','V','f','F','u','U','g','G','t','T','h','H','s','S','i','I','r','R','j','J','q','Q','k','K','p','P','l','L','o','O','m','M','n','N'};
        Scanner scanner = new Scanner(System.in);
        String line = scanner.nextLine();
        char[] a = line.toCharArray();
        char[] d = new char[a.length];
        char[] f = new char[a.length];
        char[] g = new char[a.length];
        int[] num = new int[a.length];
        int temp = 0;
        int b = 0;
        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j < str.length; j++) {
                int e = a[i];
                if (e < 65 || (90 < e && e <97) || e > 122){
                    f[b] = a[i];
                    b++;
                    break;
                }
                else if (a[i] == str[j]){
                    num[temp] = j;
                    g[temp] = str[j];
                    temp++;
                }
            }
        }
        int[] tes = new int[num.length-b];
        int[] c = new int[num.length-b];
        for (int l = 0; l < num.length - b; l++) {
            tes[l] = num[l];
        }
        for (int x = 0; x < num.length-b; x++) {
            c[x] = num[x];
        }
        Arrays.sort(tes);
        for (int y = 0; y < num.length-b; y++) {
            for (int z = 0; z < num.length-b; z++) {
                if (c[y] == tes[z]){
                    d[z] = g[y];
                }
            }
        }
        for (int k = 0; k < num.length-b; k++) {
            System.out.print(d[k]);
        }
        for (int m = 0; m < b; m++) {
            System.out.print(f[m]);
        }
    }
}

全部评论
先搞个哈希表,然后sort里面自定义排序规则,lambda表达式一句话搞定了吧
45
送花
回复
分享
发布于 2023-03-17 16:02 广东
手写不如不去
24
送花
回复
分享
发布于 2023-03-17 13:35 广东
秋招专场
校招火热招聘中
官网直投
太强了,我只会写helloworld
19
送花
回复
分享
发布于 2023-03-20 19:41 广西
首先别的不说,肯定用哈希表啊,你这双循环时间复杂度直接上天了
16
送花
回复
分享
发布于 2023-03-17 13:44 江苏
用数组做一个哈希表,52长度,对应正确的字母排序,遍历输入字符串,每一格储存对应字母的数量。然后按数组顺序输出
10
送花
回复
分享
发布于 2023-03-21 13:37 广东
首先手写就是很无语
6
送花
回复
分享
发布于 2023-03-25 20:25 江苏
好久没写算法了,简单写下。
6
送花
回复
分享
发布于 2023-03-31 11:40 广东
这个是当时发给HR的照片,不知道是因为字太烂了还是这道题写的太烂了,反正运行可以成功😂
4
送花
回复
分享
发布于 2023-03-17 12:52 陕西
把表格弄成静态的一个表,创建一个数组或结构体,存储char和int,第一个for循环将输入存进去,还有对应优先级,然后对这个数组或结构体排序,最后遍历输出就行。时间复杂度O1
4
送花
回复
分享
发布于 2023-04-01 13:10 陕西
一看就没get到点上😂😂😂怎么可能简单的考个暴力解法
2
送花
回复
分享
发布于 2023-03-20 17:44 山东
简单实现了一下
2
送花
回复
分享
发布于 2023-03-30 01:36 浙江
重新定义偏序关系函数,也就是小于号那个函数,然后快排即可。nlogn吧
2
送花
回复
分享
发布于 2023-03-31 07:22 北京
都是大佬啊,完全看不懂,只会helloworld
2
送花
回复
分享
发布于 2023-04-10 22:52 广东
。。。这个复杂度
1
送花
回复
分享
发布于 2023-03-20 18:35 四川
小公司进入要求你全能。还不如去大公司。大公司中只让你负责一个小模块。天天悠闲自在
1
送花
回复
分享
发布于 2023-03-21 11:40 重庆
兄弟,五个小时!去年夏天笔试,半小时结束
1
送花
回复
分享
发布于 2023-03-25 10:51 上海
大概知道哪个公司,第二题是个坐标系的题
1
送花
回复
分享
发布于 2023-04-12 17:57 河南
吗的,一样的题,我也写出来了,面试官说不合适,为啥也不说
1
送花
回复
分享
发布于 2023-04-12 21:11 河南
这题我做过,下面还是个数学坐标系的题,我就不惯他,我就截图给他发,第二题我手写计算,但是我让chatgpt给的思路
1
送花
回复
分享
发布于 2023-05-05 10:32 上海
应该分两次吧, 一次不管大小写单纯字母排序, 一次桶内排序
点赞
送花
回复
分享
发布于 2023-03-17 15:25 浙江

相关推荐

88 69 评论
分享
牛客网
牛客企业服务