模拟笔试 - 卡码网周赛第十八期(23年科大讯飞提前批笔试真题)

news2024/12/25 1:42:27

 第一题:

 参考思路解析:(遍历nums中的每个数字,得到不为0的数位即可。

1.导入Scanner类

  • import java.util.Scanner;:引入 Scanner 类,用于读取用户输入。

2.主方法

  • public static void main(String[] args):定义主方法,程序的入口。

3.创建Scanner对象

  • Scanner sc = new Scanner(System.in);:创建 Scanner 对象 sc,用于读取输入。

4.读取数组长度

  • int n = sc.nextInt();:读取数组的长度 n
  • sc.nextLine();:消耗换行符,确保后续读取正确。

5.读取数组元素

  • int[] arr = new int[n];:创建一个长度为 n 的整型数组 arr
  • for (int i = 0; i < n; i++) { arr[i] = sc.nextInt(); }:通过循环读取 n 个整数,并存储在数组 arr 中。

6.初始化步数计数器

  • int cnt = 0;:初始化计数器 cnt,用于记录将所有数字变为0所需的步数。

7.遍历数组

  • for (int num : arr) { ... }:遍历数组中的每一个数字。

8.逐位处理每个数字

  • while (num > 0) { ... }:当数字 num 大于0时,进入循环。
  • if (num % 10 != 0) { cnt++; }:如果数字 num 的最后一位不为0,则步数计数器 cnt 加1。
  • num /= 10;:将数字 num 除以10,相当于删除数字的最后一位。

9.输出结果

  • System.out.println(cnt);:输出最终计算得到的步数。
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        // 创建一个扫描器对象,用于读取用户输入
        Scanner sc = new Scanner(System.in);

        // 读取数组长度 n
        int n = sc.nextInt();
        sc.nextLine(); // 消耗换行符,确保后续输入读取正常

        // 创建一个数组 arr 用于存储输入的 n 个整数
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            // 读取数组中的每一个元素
            arr[i] = sc.nextInt();
        }

        // 变量 cnt 用于记录将所有数字变为 0 所需的最少步数
        int cnt =  0;

        // 遍历数组中的每一个数字
        for (int num : arr) {
            // 对于每个数字,逐位处理,直到数字变为 0
            while (num > 0) {
                // 如果当前数字的最后一位不为 0
                if (num % 10 != 0) {
                    // 需要删除这位,因此步数加 1
                    cnt++;
                }
                // 将数字除以 10,相当于删除最后一位
                num /= 10;
            }
        }
        
        // 输出最终计算得到的步数
        System.out.println(cnt);
    }
}

第二题:

 参考版解题思路分析:(先拆分构建子串,再判断是否符合2个条件)

1.读取输入

  • 使用Scanner读取字符串 长度 n,和实际的字符串 内容。并将字符串转换为字符数组“cs”。(常用的输入操作,务必 熟悉)

2.构建子串列表

  • 初始化 一个"LinkedList"集合来存储子串 
  • 使用一个 "StringBuilder" 和一个字符变量"pre" 来构建连续相同字符的子串。
  • 遍历字符数组"cs",当遇到不同的字符时,将当前子串添加到列表中,并重新开始构建新的子串

3.处理子串 

  • 遍历子串列表"list",检查每个子串的长度
  • 如果子串长度是奇数,直接添加到结果列表"res"
  • 如果子串长度是偶数且小于6,输出"-1"并返回。(边界为6:小于6的1-5没有符合条件的情况)
  • 如果长度为偶数且不小于6的子串,拆分为两个符合条件的子串添加到结果列表"res"中;

4.输出结果 (有一些ACM输出格式必须需要熟悉,相关的拆分api方法)

  • 将结果列表转换为字符串,并去除多余的符号(方括号和逗号),最终输出符合条件的子串。
import java.util.*;

public class Main {
    public static void main(String[] args) {
        // 创建扫描器对象,用于读取用户输入
        Scanner sc = new Scanner(System.in);

        // 读取字符串的长度 n
        int n = sc.nextInt();
        // 读取下一行(实际的字符串),并将其转换为字符数组
        sc.nextLine();
        char[] cs = sc.nextLine().toCharArray();

        // 创建一个列表来记录每个相同字符的子串
        List<String> list = new LinkedList<>();

        // 初始化一个变量 pre 用于记录上一个字符
        char pre = '.';
        // 初始化一个 StringBuilder 对象,用于构建当前子串
        StringBuilder sb = new StringBuilder();

        // 遍历字符数组
        for (int i = 0; i < cs.length; i++) {
            // 如果 pre 是初始值 '.' 或当前字符与 pre 相同
            if (pre == '.' || cs[i] == pre) {
                // 更新 pre 为当前字符
                pre = cs[i];
                // 将当前字符添加到 StringBuilder 中
                sb.append(cs[i]);
            } else {
                // 否则,将当前 StringBuilder 的内容添加到列表中
                list.add(sb.toString());
                // 重新初始化 StringBuilder 和 pre
                sb = new StringBuilder();
                pre = cs[i];
                // 将当前字符添加到新的 StringBuilder 中
                sb.append(cs[i]);
            }
        }
        // 将最后一个子串再 手动添加到列表中
        if (sb != null) list.add(sb.toString());

        // 创建一个结果列表,用于存储符合条件的子串
        List<String> res = new LinkedList<>();
        
        // 遍历 list 中的每个子串
        for (String s : list) {
            // 如果子串的长度是奇数(题目已经限定了n>1)
            if (s.length() % 2 != 0) {
                res.add(s);//(那就ok了,是奇数肯定大于等于3,可以直接放res中)
            } else {
                // 如果子串的长度是偶数(又分小于6和大于等于6)
                if (s.length() < 6) {
                    // 如果长度小于6,输出 -1 并返回(没法拆分成符合条件的)
                    System.out.println(-1);
                    return;
                }else{
                    //否则就是长度为偶数且不小于6的子串,
                    //可以拆分成两个符合条件的子串添加到结果列表 res
                    // 将前3个字符aaa和剩余的字符aaaaa分别添加到结果列表中
                    //大于等于6的偶数 -3,都还是个 大于等于3的奇数!!
                    res.add(s.substring(0, 3)); 
                    res.add(s.substring(3));
                }
                
            }
        }

        // 输出结果,将结果列表转换为字符串,去除多余的符号
        System.out.println(res.toString().replace("[", "").replace("]", "").replace(",", ""));
    }
}

 // 输出结果,将结果列表转换为字符串,去除多余的符号 System.out.println(res.toString().replace("[", "").replace("]", "").replace(",", ""));

String的replace()方法,在 输出格式中很常用!!

务必 熟悉。

第三题:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1684742.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣1809 没有广告的剧集(postgresql)

需求 Table: Playback ----------------- | Column Name | Type | ----------------- | session_id | int | | customer_id | int | | start_time | int | | end_time | int | ----------------- 该表主键为&#xff1a;session_id &#xff08;剧集id&#xff09; customer_…

【C++算法】BFS解决FloodFill算法相关经典算法题

1.图像渲染 我们这道题可以使用深搜来解决&#xff0c;利用一个队列遍历到与该点相连的所有像素相同的点&#xff0c;然后将其修改成指定的像素即可&#xff0c;直接上思路&#xff1a; 直接上代码&#xff1a; class Solution {int dx[4] {0, 0, 1, -1};int dy[4] {1, -1, …

计组期末必考大题

一.寻址方式详解 1.直接寻址 指令地址码直接给到操作数所在的存储单元地址 2.间接寻址 A为操作数EA的地址 3.寄存寻址 4.寄存器间接寻址 5.变址寻址 6.基地址寻址 7.小结 二、指令周期详解 一、基本概念 指令周期:去除指令并执行指令所需要的时间指令周期:由若干个CPU周…

go语言的一些常见踩坑问题

开始之前&#xff0c;介绍一下​最近很火的开源技术&#xff0c;低代码。 作为一种软件开发技术逐渐进入了人们的视角里&#xff0c;它利用自身独特的优势占领市场一角——让使用者可以通过可视化的方式&#xff0c;以更少的编码&#xff0c;更快速地构建和交付应用软件&#…

docker 安装minio 服务 ssl 证书

minio 安装 ssl 证书 下载apache 证书 &#xff08;可以使用免费的证书&#xff09; 放在/opt/minio/conf/certs 下 (安装minio 时的 挂载目录 参考文章 docker 安装minio,详细图解 ) 拷贝进容器 /root/.minio docker cp /opt/minio/conf/certs/private.key minio:/root/.mi…

蜂窝物联四情监测:助力农业升级,科技赋能打造丰收新篇章!

农业四情指的是田间的虫情、作物的苗情、气候的灾情和土壤墒情。“四情”监测预警系统的组成包括管式土壤墒情监测站、虫情测报灯、气象站、农情监测摄像机&#xff0c;可实时监测基地状况,可以提高监测的效率和准确性&#xff0c;为农业生产提供及时、科学的数据支持&#xff…

知识图谱数据预处理笔记

知识图谱数据预处理笔记 0. 引言1. 笔记1-1. \的转义1-2. 特殊符号的清理1-3. 检查结尾是否正常1-4. 检查<>是否存在1-5. 两端空格的清理1-6. 检查object内容长时是否以<开始 0. 引言 最近学习知识图谱&#xff0c;发现数据有很多问题&#xff0c;这篇笔记记录遇到的…

【android 9】【input】【2.结构体含义】

系列文章目录 可跳转到下面链接查看下表所有内容https://blog.csdn.net/handsomethefirst/article/details/138226266?spm1001.2014.3001.5501文章浏览阅读2次。系列文章大全https://blog.csdn.net/handsomethefirst/article/details/138226266?spm1001.2014.3001.5501 目录…

怎么认识和应用Redis内部数据结构?no.22

Redis 内部数据结构 RdeisDb Redis 中所有数据都保存在 DB 中&#xff0c;一个 Redis 默认最多支持 16 个 DB。Redis 中的每个 DB 都对应一个 redisDb 结构&#xff0c;即每个 Redis 实例&#xff0c;默认有 16 个 redisDb。用户访问时&#xff0c;默认使用的是 0 号 DB&#…

NLP(18)--大模型发展(2)

前言 仅记录学习过程&#xff0c;有问题欢迎讨论 LLM的结构变化&#xff1a; Muti-head 共享&#xff1a; Q继续切割为muti-head,但是K,V少切&#xff0c;比如切为2个&#xff0c;然后复制到n个muti-head减少参数量&#xff0c;加速训练 attention结构改动&#xff1a; s…

数据安全保护的权益有什么?

针对个人主体&#xff0c;数据需要保护的权益有&#xff1a; 个人的隐私安全、社交安全、财产安全、支付安全、各类权利安全、生命安全、声誉安全 这些权益在物理世界中也基本都是存在的&#xff0c;只不过在数字世界中进行了映射或者重构。 针对企业的主体&#xff0c;需要保…

非常简单的副业兼职,知乎问答。每天半小时,收益240+

近期平台陆续为我带来了约240元的收入。实现这一目标并不需要复杂的方法或技巧&#xff0c;甚至可以说是零粉丝、零门槛。只需每天抽出半小时进行复制粘贴操作即可。在此&#xff0c;我希望能为那些缺乏基础的小伙伴们提供一些微不足道的经验和启示。 周周近财&#xff1a;让网…

(六)DockerCompose安装与配置

DockerCompose简介 Compose 项目是 Docker 官方的开源项目&#xff0c;负责实现对 Docker 容器集群的快速编排。使用前面介绍的Dockerfile我们很容易定义一个单独的应用容器。然而在日常开发工作中&#xff0c;经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现…

HQL面试题练习 —— 互相关注

目录 1 题目2 建表语句3 题解 1 题目 现有用户关注者列表记录表 t_user_follower&#xff0c;有两个字段&#xff0c;用户ID&#xff08;user_id&#xff09;&#xff0c;关注者列表&#xff08;follower_ids)&#xff0c;关注者列表中是关注用户的用户ID&#xff0c;数据样例如…

JavaEE-文件IO1

文章目录 一、什么是文件IO?1.1 IO1.2 文件1.2.1 路径1.2.2 文件分类 二、使用Java针对文件系统进行操作 一、什么是文件IO? 1.1 IO IO分别代表Input和Output即输入和输出。比如我的电脑可以从网络上下载文件&#xff0c;也可以通过网络上传文件或者我把我的内存中的数据保…

第 8 章 机器人实体导航实现01_准备工作(自学二刷笔记)

重要参考&#xff1a; 课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ 讲义链接:Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 9.3.1 导航实现01_准备工作 1.1分布式架构 分布式架构搭建完毕且能正常运行&#xff0c;在PC端可以远程登陆…

性能测试——性能问题分析步骤

前言 性能测试大致分以下几个步骤&#xff1a; 需求分析 脚本准备 测试执行 结果整理 问题分析 今天要说的是最后一个步骤——“问题分析”&#xff1b; 需求描述 有一个服务&#xff0c;启动时会加载一个1G的词表文件到内存&#xff0c;请求来了之后&#xff0c;会把…

【前端】使用 Canvas 实现贪吃蛇小游戏

使用 Canvas 实现贪吃蛇小游戏 在这篇博客中&#xff0c;我们将介绍如何使用 HTML5 Canvas 和 JavaScript 实现一个简单的贪吃蛇&#xff08;Snake&#xff09;小游戏。这个项目是一个基础的游戏开发练习&#xff0c;它可以帮助你理解如何在 Canvas 上绘图、如何处理用户输入以…

【Spring security】【pig】Note03-pig token令牌解析器过程

&#x1f338;&#x1f338; pig token令牌解析器过程 &#x1f338;&#x1f338; pig后端源码 一、解析请求中的令牌值。 二、验证令牌 内省并验证给定的令牌&#xff0c;返回其属性。返回映射表示令牌有效。 /*** author lengleng* date 2019/2/1 扩展用户信息*/ publi…

重新安装vmware与再次编译u-boot

一、使用环境&#xff1a; 使用vmware 16pro安装 ubuntu18.04桌面版 二、遇到的问题与解决&#xff1a; 1&#xff09;、无法连网&#xff1a; 保持nat模式&#xff0c;移除再添加。 2&#xff09;、git配置私钥&#xff1a; 如果是拉取自己的仓库&#xff0c;请查看此步&am…