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软件笔试真题+答案合集 文章被收录于专栏
本专刊由牛客官方团队打造,主要讲解名企校招技术岗位的笔试题,内容中包含多个名企的笔试真题,附有题目思路及参考代码