【笔试刷题】错题集1

文章目录

  • C语言格式化输出%5.3s用法
  • 逻辑短路
  • 编程题:删除公共字符串
  • 编程题:组队竞赛

C语言格式化输出%5.3s用法

C语言格式化输出
[解析]%m.ns 输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
格式化输出

逻辑短路

逻辑短路
[解析]
逻辑短路:对于 && 运算符,当第一个操作数为 false 时,将不会判断第二个操作数,因为此时无论第二个操作数为何,最后的运算结果一定是 false
对于 || 运算符,当第一个操作数为 true 时,将不会判断第二个操作数,因为此时无论第二个操作数为何,**最后的运算结果一定是 true **。

故第一个if执行了b++,则第二个if的||前面b!=2为真,不执行后面c–。最终结果为1,3,3。

编程题:删除公共字符串

删除公共字符串

链接:删除公共字符串
[解析]
本题如果使用传统的暴力查找方式,如判断第一个串的字符是否在第二个串中,在再挪动字符删除这个字符的方式,效率为O(N^2),效率太低,很难让人满意。

  1. 将第二个字符串的字符都映射到一个hashtable数组中,用来判断一个字符在这个字符串。
  2. 判断一个字符在第二个字符串,不要使用删除,这样效率太低,因为每次删除都伴随数据挪动。这里可
    以考虑使用将不在字符添加到一个新字符串,最后返回新新字符串。
    [代码]
    C语言暴力解法
#include <stdio.h>
#include <string.h>
int main() {char a[10000] = {0},b[10000] = {0};fgets(a,100000,stdin);fgets(b,100000,stdin);int i = 0;int j = 0;int sum = 0;a[strlen(a)-1] = 0;while(a[i] != 0){j = 0;while(b[j] != 0){if(a[i] == b[j]){int x = i;while(a[x+1]){a[x]=a[x+1];x++;}a[x]= 0;}j++;}i++;}printf("%s",a);
return 0;

C++ hash解法

#include <iostream>
#include<string>using namespace std;int main() {string s1,s2,ret;getline(cin,s1);getline(cin,s2);int hash[256] = {0};for(int i = 0;i<s2.size();i++){hash[s2[i]] = 1;}for(int i = 0;i<s1.size();i++){if(hash[s1[i]] == 0)ret += s1[i];}cout<<ret<<endl;return 0;
}

编程题:组队竞赛

组队竞赛
链接:组队竞赛
[解析]
本题的主要思路是贪心算法,贪心算法其实很简单,就是每次选值时都选当前能看到的局部最优解,所以这里的贪心就是保证每组的第二个值取到能选择的最大值就可以,我们每次尽量取最大,但是最大的数不可能是中位数,所以退而求其次,取 每组中第二大的。在这里插入图片描述
(图片来源:link)
[代码]

#include <iostream>
#include<algorithm>
#include<vector>
using namespace std;int main() {int n;while (cin >> n){vector<int> v(3*n);long long sum = 0;for(int i = 0;i<3*n;i++){cin>>v[i];}std::sort(v.begin(),v.end());//排序for(int i = 0;i<n;i++){sum += v[n+(i*2)];}// for(int i = 0; i < n; ++i)// {//     sum += v[v.size()-(2*(i+1))];  //i是从0开始的,就要+1,也可以i从1开始,就不需要了// }cout<<sum<<endl;}return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos 7 增加临时路由及永久路由

centos 7 增加临时路由及永久路由 如果增加临时路由&#xff0c;要先安装net-tools , sudo yum install net-tools route add -net 10.1.0.0 gw 10.1.1.1 netmask 255.255.0.0 意思是增加了一条动态路由&#xff0c;网关10.1.1.1 ,10.1.x.x 的所有ip都走这个网关 此种方式&am…

Elasticsearch介绍以及基本操作

目录 一、Elasticsearch介绍 二、关于Elasticsearch的基本操作 &#xff08;1&#xff09;索引操作 &#xff08;2&#xff09;文档操作 三、域的属性 &#xff08;1&#xff09;index &#xff08;2&#xff09;type &#xff08;3&#xff09;store 一、Elasticsearc…

放个烟花迎接龙年春节吧

不知不觉即将迎来2024龙年春节了。龙的形象在中国传统文化中有着广泛的应用&#xff0c;比如在传统文化中&#xff0c;龙代表着权力、威严、吉祥和神灵的象征&#xff0c;同时也是生命力和繁荣的象征。 今天的文章将用原生JavaScript和Canvas API实现一个烟花的效果&#xff0…

程序员的你,是不是又被催婚了

程序员作为社会中一个较为特殊的群体&#xff0c;由于工作特性&#xff08;如长时间对着电脑、工作节奏较快、加班相对频繁等&#xff09;以及职业发展需要投入大量时间和精力&#xff0c;有时可能会面临较晚结婚的问题。这也导致了在某些情况下&#xff0c;他们可能被家人或朋…

【Linux】什么是.bashrc,以及其使用方法

经常在配置linux各种环境的时候&#xff0c;遇到对bashrc的配置。当时也只是机械地跟着教程&#xff0c;一步步输入指令&#xff1b;遇到的次数多了&#xff0c;想知道.bashrc究竟是何方神圣。于是整理了下其主要功能以及使用方法。 一、什么是.bashrc .bashrc&#xff0c;属…

Go 知识for-range

Go 知识for-range 1. for-range 的用法1.1 数组1.2 切片1.3 字符串1.4 map1.5 chan 2. 原理2.1 数组2.2 切片2.3 字符串2.4 map2.5 chan 3. 总结 https://a18792721831.github.io/ 1. for-range 的用法 for-range 表达式用于遍历集合元素&#xff0c;比传统的for更加简单直观…

03-Redis缓存高可用集群

文章目录 1、Redis集群方案比较2、Redis高可用集群搭建redis集群搭建Java操作redis集群 4、Redis集群原理分析槽位定位算法跳转重定位Redis集群节点间的通信机制gossip通信的10000端口网络抖动 Redis集群选举原理分析集群脑裂数据丢失问题集群是否完整才能对外提供服务Redis集群…

【LeetCode每日一题】2865. 美丽塔 I

2024-1-24 文章目录 [2865. 美丽塔 I](https://leetcode.cn/problems/beautiful-towers-i/) 2865. 美丽塔 I 初始化变量 ans 为0&#xff0c;用于记录最大的和值。获取整数列表的长度&#xff0c;保存到变量 n 中。使用一个循环遍历列表中的每个位置&#xff0c;从0到n-1。在循…

【JavaEE】网络原理: 网络编程套接字(概念)

目录 1.什么是网络编程 2.网络编程中的基本概念 2.1发送端和接收端 2.2请求和响应 2.3客户端和服务端 3.Socket套接字 4.Socket编程注意事项 1.什么是网络编程 网络编程&#xff0c;指网络上的主机&#xff0c;通过不同的进程&#xff0c;以编程的方式实现网络通信 (…

【C++】类和对象(中篇)(全网最细!!!)

文章目录 &#x1f354;一、类的六个默认成员函数&#x1f354;二、构造函数&#x1f35f;1、概念&#x1f35f;2、特性&#x1f369;默认构造函数 &#x1f354;三、析构函数&#x1f35f;1、概念&#x1f35f;2、特性&#x1f369;默认析构函数 &#x1f354;四、拷贝构造函数…

STL之queue 【队列】

STL之queue 【队列】 一.基本用法1.头文件2.创建queue3.插入元素&#xff1a;4.删除元素(弹出元素)&#xff1a;5.访问队列的前端元素6.访问队列的后端元素7.检查队列是否为空8.获取队列的大小 二.综合示例&#xff1a;用C语言实现队列queue常见的应用场景包括&#xff1a; que…

Redis2-事务 连接Java 整合springboot 注解缓存

一、订阅和发布 Redis 发布订阅 (pub/sub) 是一种消息通信模式&#xff1a;发送者 (pub) 发送消息&#xff0c;订阅者 (sub) 接收消息。 Redis 客户端可以订阅任意数量的频道。 Redis的发布和订阅 客户端订阅频道发布的消息 频道发布消息 订阅者就可以收到消息 发布订阅的代…