科大讯飞笔试 科大讯飞笔试题 0322
笔试时间:2024年03月22日
这场的笔试和去年2023的0715场是一样的,去年的笔试内容可见:
历史笔试传送门:2023秋招笔试合集
第一题
题目:小y删数字
给定一个长度为n的数组,数组元素为a1, a2, . . , an,每次能删除任意a的任意一位,求将所有数字变成0最少需要几步。例如103若删除第1位则变成3;若删除第2位则变成13;若删除第3位则变成10。
输入描述
第一行一个正整数n代表数组长度。接下来一行n个数第j个数代表a。
1≤n ≤10^5 0≤ai≤10^9
输出描述
输出一行一个数代表答案。
样例输入
5
10 13 22 100 30
样例输出
7
参考题解
遍历nums中的每个数字,得到不为0的数位即可。
Java:
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] nums = new int[n];
for (int i = 0; i < n; i++) {
nums[i] = sc.nextInt();
}
int cnt = 0;
for (int num : nums) {
while (num > 0) {
if (num % 10 != 0) cnt++;
num /= 10;
}
}
System.out.println(cnt);
}
}
第二题
题目:小红的字符串切割
小红拿到了一个字符串,她希望你帮她切割成若干子串,满足以下两个条件:
1、子串长度均为不小于3的奇数。
2、子串内部的字符全部相同。
输入描述
第一行输入一个正整数n,代表字符串长度。第二行输入一个字符串,仅由小写字母组成。1 <n ≤200000
输出描述
如果无解,请输出-1。否则按顺序输出若干个字符串,用空格隔开。
样例输入
8
aaabbbbb
样例输出
aaa bbbbb
参考题解
Java:
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
sc.nextLine();
char[] cs = sc.nextLine().toCharArray();
// 记录每个相同字符的子串的字符数量
List<String> list = new LinkedList<>();
char pre = '.';
StringBuilder sb = new StringBuilder();
for (int i = 0; i < cs.length; i++) {
if (pre == '.' || cs[i] == pre) {
pre = cs[i];
sb.append(cs[i]);
}
else {
list.add(sb.toString());
sb = new StringBuilder();
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
2024 BAT笔试合集 文章被收录于专栏
持续收录字节、腾讯、阿里、美团、美团、拼多多、华为等笔试题解,包含python、C++、Java多种语言版本,持续更新中。



查看1道真题和解析