vivo历年秋招笔试真题

如需获取完整资料,请点击下方链接领取《2024校招笔试真题秘籍》(实时更新中)

不收费,3人组团即可一块免费领取!限量免费10000个名额

手机端点击免费领取:https://www.nowcoder.com/link/campus_xzbs2

电脑端请扫码领取:

1、字符串排序

【题目描述】请对一组字符串进行排序,字符串由大小写字母和数字组成,需要满足以下比较规则1、长度不同时,长度较短在排前面2、长度相同时,按照字典顺序排列(AaBb - Zz,0-9 顺序),即大写字母在小写字母前,数字排在字母后。要求时间复杂度为O(nlogn)。比如:abc Abc 123 1 1bc CBD abcd a排序后结果为:a 1 Abc abc CBD 1bc 123 abcd

【解题思路】

按照题目要求实现cmp函数,调用sort函数。

 

【参考代码】

public class Main {
    public static void main(String[] args) {
        String[] input = {"abc", "Abc", "123", "1", "1bc", "CBD", "abcd", "a" };
        sort(input);
        for (String s : input) {
            System.out.println(s);
        }
    }

    private static void sort(String[] input) {
        quickSort(input, 0, input.length - 1);
    }

    private static void quickSort(String[] data, int left, int right) {
        if (left > right) {
            return;
        }
        int i, j;
        String t, temp;
        temp = data[left];
        i = left;
        j = right;
        while (i != j) {
            while (cmp(data[j], temp) >= 0 && i < j) {
                j--;
            }
            while (cmp(data[i], temp) <= 0 && i < j) {
                i++;
            }
            if (i < j) {
                t = data[i];
                data[i] = data[j];
                data[j] = t;
            }
        }
        data[left] = data[i];
        data[i] = temp;
        quickSort(data, left, i - 1);
        quickSort(data, i + 1, right);
    }

    private static int cmp(String left, String right) {
        if (lef

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

2024软件笔试真题+答案合集 文章被收录于专栏

本专刊由牛客官方团队打造,主要讲解名企校招技术岗位的笔试题,内容中包含多个名企的笔试真题,附有题目思路及参考代码

全部评论

相关推荐

11-18 15:57
门头沟学院 Java
最终归宿是测开:这个重邮的大佬在重邮很有名的,他就喜欢打92的脸,越有人质疑他,他越觉得爽😂
点赞 评论 收藏
分享
shtdbb_:还不错,没有让你做了笔试再挂你
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务