9.14 依图笔试面经 - 编程题 & 题解
考试时间:2023-09-14(100 分钟)
考试平台: 牛客网
T1
牛牛正在买书,每本书都有名字和价格,牛牛想把书按照价格升序排序。
输入描述
第一行输入一个正整数 n,表示书的数量
后续每行都输入一个字符串 str 和一个正整 p表示书价格。
输出描述
把书名按照价格升序输出。
示例1
输入:
3
TheNowcoder 100
Abook 20
BBook 300
输出:
Abook
TheNowcoder
BBook
题解
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
// P1
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
TreeMap<Integer, String> map = new TreeMap<>();
for (int i = 0; i < n; i++) {
String bookName = in.next();
Integer price = in.nextInt();
map.put(price, bookName);
}
for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println(entry.getValue());
}
}
}
T2
从前有一扇秘密大门,打开大门的口令记录在一个数组中,为了破解其中的奥秘,需要找出数组内重复次数第二多的小写字母及其出现的次数。
输入描述
输入一个任意长度的字符串数组
输出描述
输出数组内重复次数第二多的小写字母及其频次,输出形式为:字符-频次
示例
输入:
['abaabbbabbddddfew1','abbbAAwe123','45dipopg#$@']
输出:
a-5
输入:
['qwe','qwe','qwe']
输出:
ERROR
题解
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
// P2
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Map<Character, Integer> cntMap = new HashMap<>();
while (in.hasNext()) {
String next = in.next();
for (char c : next.toCharArray()) {
cntMap.put(c, cntMap.getOrDefault(c, 0) + 1);
}
}
char c = '_';
// max1 次数最多, max2 次数第二多
int max1 = 0, max2 = 0;
for (Map.Entry<Character, Integer> entry : cntMap.entrySet()) {
int cnt = entry.getValue();
if (cnt >= max1) {
max2 = max1;
max1 = cnt;
c = entry.getKey();
} else if (cnt > max2) {
max2 = cnt;
}
}
if (max1 != max2) {
System.out.println(String.format("%c-%d", c, max1));
} else {
System.out.println("ERROR");
}
}
}
T3
小明是一个有强迫症的小孩,有一天他看到一个n”m的矩阵,但是强迫症让他失去理智,他想要删掉矩阵的一些列使得最终的矩阵每一行都是一个非递减序列。
换句话说,如果最终的矩第 i 行第 j 列为 a[i][j], 那么对于所有的i, j ( 1≤ i ≤ n, 1 ≤ j ≤ m-1) , a[i][j] ≤ a[i][j+1] 。
现在小明想知道他最少删除多少列能使得最终的矩阵每一行都是一个非递减序列。
输入描述
第1行: 输入两个正整数n,m,(1 ≤ n,m ≤300)。
第2~n+1行: 每行输入m个正整数,第i+1行第 j 个正整数,表示题目中的a[i][j],(1 ≤ a[i][j] ≤ 10^9)。
输出描
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
🔥笔试编程真题宝典💯 文章被收录于专栏
📕分享大厂机试真题深度剖析核心考点,助你速通面试。