科大讯飞笔试 科大讯飞笔试题 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 18 评论
分享
牛客网
牛客企业服务