考研笔试/上机经典编程题集合(持续更新并完善解题思路)

news2024/10/11 17:45:58

目录

  • 一、程序设计经典编程题(C语言实现)
    • 1.1 判断一个字符串是否由另一个字符串旋转得到
    • 1.2 字符串左旋
    • 1.3 求最大公约数以及最小公倍数
    • 1.4
  • 二、力扣
    • 2.1 面试题 17.04. 消失的数字
  • 三、牛客网
    • 3.1 OR62 倒置字符串
    • 3.2 BC84 计算y的值

一、程序设计经典编程题(C语言实现)

1.1 判断一个字符串是否由另一个字符串旋转得到

1.2 字符串左旋

  • 题目描述:
    在这里插入图片描述

1.3 求最大公约数以及最小公倍数

可以参考本博客
可以用初中数学理解一下辗转相除法

1.4

二、力扣

2.1 面试题 17.04. 消失的数字

题目链接

  1. 解法一:首先^遵循交换律 且0^N=N N^N=0 把所有的元素都^起来 相同的都成0 剩下一个单独的 就是消失的数字 相当于找单身狗
  2. 解法二:既然题目描述里的n 其实应该等于numsSize 也就是我应该有的元素是0,1,2,3,4,n(numsSize) 把他们全都加起来去减数组的值 结果就是那个孤儿
  3. 解法二还可以优化 1-n求和直接用公式 都不需要遍历
//我的代码:
int missingNumber(int* nums, int numsSize) {
    int ret = 0;
    int sum = 0;
    for (int i = 0; i < numsSize; i++) {
        scanf("%d", &nums[i]);
        ret = ret ^ nums[i];
        ret = ret ^ i;
    }
    ret = ret ^ numsSize;

    //思路二:
    // for (int i = 0; i <= numsSize; i++) {
    //     sum += i;
    // }

    // for (int i = 0; i < numsSize; i++) {
    //     scanf("%d", &nums[i]);
    //     sum -= nums[i];
    // }
    return ret;
}

三、牛客网

3.1 OR62 倒置字符串

题目链接
● 其实最后我觉得 这里让我混淆的最大原因就是 要考虑空格和\0两个情况 尤其是\0
● 而且感觉最难的一步就是想不到要做两步reverse就行
● 然后我肯定就顺着直接输入一个字符串的思路去想了 鹏哥给的思路是两次reverse 我就想实现他的思路
● 其实我的思路就是第一次整体reverse之后 下面肯定要有两个不断变化的指针 每次都指向首元素和末尾元素(我犯了两个错误 在交换每个元素的时候 一个是没有考虑最后一个元素交换时候的\0 还有一个就是空格是不需要交换)
最终我的代码: 详细过程见语雀笔记

#include <stdio.h>
#include<string.h>

void reverse(char* left, char* right) {
    while (left < right) {
        char tmp = *left;
        *left = *right;
        *right = tmp;
        left++;
        right--;
    }
}
int main() {
    char arr[100];
    gets(arr);
    //整体reverse
    char* left = arr;
    char* right = arr + strlen(arr) - 1;
    reverse(left, right);

    char* start = arr;//每次记录起始位置
    char* find = arr;//协助寻找末尾位置

//这里必须要定义一个find 相当于临时变量的作用
//要不然的话 会修改start的值 传参就错了
    while (1) {
        //寻找末尾
        while (*find != ' ' && *find != '\0') {
            find++;
        }
        //找到了
        char* end = find - 1;
        //reverse当前锁定的元素
        reverse(start, end);
        //判断是不是最后一次reverse
        if (*find == '\0')
            break;

        //如果不是 更新收尾 继续reverse
        else
            //这里的写法要小心 如果要继续找 那就是先把find++
            //然后再作为下一轮reverse的start的值
            start = ++find;
    }
    printf("%s", arr);
    return 0;
}

3.2 BC84 计算y的值

题目链接

  • 那么有的朋友就要问了 这么简单的题放进来侮辱我的智商? 举报点踩拉黑了

  • 主要还是因为我第一次写的时候居然写了2个if1个else 一般是讨论单值函数的! 只有一个入口!
    在这里插入图片描述

  • 正确:x和y是一一映射关系 只有一个入口

#include <stdio.h>

int main() {
    int x;
    int y;
    while (scanf("%d", &x) != EOF) {
        if (x < 0)
            y = 1;
        else if (x == 0)
            y = 0;
        else
            y = -1;
        printf("%d\n",y);
    }
    return 0; 
}

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

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

相关文章

Java生成csv格式文件样例_快速详细

Java高效Excel处理工具EasyExcel&#xff1a;解决大文件读写难题 EasyExcel是一个基于Java的高效、简洁的Excel处理工具&#xff0c;专为解决大文件内存溢出问题而设计。它能够在不牺牲性能的前提下快速完成Excel文件的读写操作。相比于传统的Apache POI等框架&#xff0c;Eas…

Unity修改鼠标图片【超简单】

1.向Unity导入需要修改的鼠标图片&#xff0c;在Unity内设置图片的Texture Type为Cursor。 2.编写代码 [SerializeField] Texture2D mouseTex;//放图片 void Start() {Cursor.SetCursor(mouseTex, Vector2.zero, CursorMode.Auto); }3.代码挂载在某物体&#xff08;或者随便哪…

net ASp.net Core 文件上传 IFormFile IFormFileCollection

IFormFile 接口是 ASP.NET Core 中处理上传文件的标准方式。当客户端通过表单上传文件时&#xff0c;ASP.NET Core 会自动将上传的文件封装成一个 IFormFile 对象&#xff0c;然后你可以在服务器端通过这个对象来访问和处理文件。 IFormFile接口的使用场景包括但不限于&…

java:找不到符号符号: 变量 log解决方案

最近有个项目频繁的遇到这个问题.经常启动不起来,但是提代码正常. 这个问题是由于lombok插件未加载导致的Slf4j的日志异常. 解决思路: 1.插件里面写在lombok再重新安装.无效 2.重新加载项目.无效 3.重新构建项目.无效 4.删除代码重下代码.无效 5.检查该配置是否打开,已打开 6.…

离散数学-逻辑与证明基础1.3(命题等价)

介绍 定义 1 一个复合命题&#xff0c;如果无论其中命题变量的真值如何&#xff0c;它总是为真&#xff0c;则称为重言式&#xff08;tautology&#xff09;。一个复合命题&#xff0c;如果它总是为假&#xff0c;则称为矛盾式&#xff08;contradiction&#xff09;。一个既不…

JDK11~JDK17值得关注的更新整理

新增特性&#xff1a; 1、instanceof的模式匹配 (JDK 16) 这个特性增强了instanceof运算符&#xff0c;允许在检查一个对象的类型时直接进行模式匹配&#xff0c;这使得代码更加简洁和易于理解。 通常我们使用instanceof时&#xff0c;一般发生在需要对一个变量的类型进行判…

QT C++ 软键盘/悬浮键盘/触摸屏键盘的制作

目录 1、前言 2、界面设计 3、英文、数字的输入 4、符号的输入 5、中文的输入 6、中文拼音库的选择 7、其他 8、结语 1、前言 使用QT C在带显示器的Linux系统 开发板上&#xff08;树莓派等&#xff09;编写操作UI界面时&#xff0c;很多时候都需要一个软键盘来输入文字…

施工进度可视化:提升项目管理透明度

图扑施工可视化通过直观的数据展示&#xff0c;使项目各方能够实时了解进度和资源分配&#xff0c;识别潜在问题&#xff0c;提高沟通效率&#xff0c;优化决策流程&#xff0c;确保项目按时、高效、安全地推进。

22个IT运维领域黄金证书 每一个都含金量极高!

**1、阿里云认证&#xff1a;**阿里云提供多个层次的认证&#xff0c;包括ACA&#xff08;助理工程师&#xff09;、ACP&#xff08;专业工程师&#xff09;和ACE&#xff08;专家工程师&#xff09;&#xff0c;涵盖了云计算、大数据、云安全、人工智能等多个领域。 **2、ITS…

【text2sql】基于上下文文学习的MCS-SQL框架在Spider和BIRD取得了新SOTA

论文标题 “MCS-SQL: Leveraging Multiple Prompts and Multiple-Choice Selection For Text-to-SQL Generation” &#xff0c;发表于2024.5的arXiv。 1.摘要解读 研究背景&#xff1a;大型语言模型&#xff08;LLMs&#xff09;在文本到SQL&#xff08;Text-to-SQL&#xf…

Python中的help()函数引发错误:追踪错误并提供解决方案

Python 中的 help() 函数通常用于交互式帮助&#xff0c;它可以显示关于模块、类、函数、方法、关键字等的文档说明。一般情况下&#xff0c;help() 函数不会引发错误&#xff0c;但如果你在使用时遇到问题&#xff0c;可能与以下几种常见情况有关。 1、问题背景 在使用 Pytho…

宝藏推荐:精选十款知识库搭建软件

当今这个信息爆炸的时代&#xff0c;高效地管理和利用知识成为了各行各业追求的目标。无论是企业内部的协作&#xff0c;还是对外提供的信息服务&#xff0c;一个强大的知识库都是不可或缺的。为了帮助大家更好地守护和利用知识宝藏&#xff0c;以下是精选的十款知识库搭建软件…

新版 Notepad++ 下载与安装教程

一、软件准备&#xff1a;麻烦点我 二、双击下载好的 notepad 软件进行安装&#xff0c;选择 “简体中文”。 三、默认 “下一步” 安装。 四、单击 “我接受” 按钮。 五、自定义安装位置&#xff0c;个人建议安装在 D 盘。 六、选择组件&#xff0c;默认 “下一步”。 七、勾…

FFmpeg的简单使用【Windows】

目录 一、视频生成图片 静态图片 转码过程 动态图片gif 二、图片生成视频 三、FFmpeg常用参数命令 3.1 主要参数 3.1.1、-i 3.1.2、-f 3.1.3、-ss 3.1.4、-t 3.2 音频参数 3.2.1、-aframes 3.2.2、 -b:a 3.2.3、-ar 3.2.4、-ac 3.2.5、-acodec 3.2.6、-an 3…

《大规模语言模型从理论到实践》第一轮学习--分布式训练

基础知识 5分钟看懂电脑硬件配置 - 知乎 (zhihu.com) 显存 定义&#xff1a;显存是显卡上的专用高速缓存&#xff0c;用于存储图形处理器&#xff08;GPU&#xff09;在处理图像和视频数据时所需的临时数据。 功能&#xff1a;显存的主要作用是提供GPU快速访问的数据存储&a…

从桌面运维转到网络安全后,我是怎样成为大厂高级网络安全工程师

我的第一份工作是桌面运维&#xff0c;我的上一份工作是大厂高级网络安全工程师。 很多人都不知道网络安全工程师是具体做什么的&#xff0c;今天就来给大家细细说下。 网络安全工程师是保护信息系统和网络免受破坏、攻击或非法访问的专业人员。他们的工作内容主要包括以下几个…

poi通过在word中写入了表格,通过libreoffice转换成PDF后,word中刚才画的表格宽度无限拉伸问题的解决。

一、复现: poi版本: <poi>3.17</poi><poi-ooxml>3.17</poi-ooxml><poi-ooxml-schemas>3.17</poi-ooxml-schemas><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><versio…

单例模式和读者写者问题

文章目录 10. 线程安全的单例模式10.1 什么是设计模式10.2 什么是单例模式10.3 单例模式的特点10.4 饿汉方式和懒汉方式10.5 单例模式的线程池 11. STL和智能指针的线程安全 问题11.1 STL中的容器是否是线程安全的?11.2 智能指针是否是线程安全的? 12. 其他常见的各种锁13. 读…

【Linux】来查看当前系统的架构

使用 uname 命令 uname -m 使用 arch 命令 arch 查看 /proc/cpuinfo 文件 查找 model name 或 Processor 字段。 cat /proc/cpuinfo 使用 lscpu 命令 lscpu

linux线程 | 线程的控制

前言&#xff1a;本节内容为线程的控制。在本篇文章中&#xff0c; 博主不仅将会带友友们认识接口&#xff0c; 使用接口。 而且也会剖析底层&#xff0c;带领友友们理解线程的底层原理。 相信友友们学完本节内容&#xff0c; 一定会对线程的控制有一个很好的把握。 那么&#…