组队竞赛和删除公共字符

devtools/2024/10/20 6:08:07/

这里附上两个题目的链接

题目一:删除公共字符_牛客题霸_牛客网 (nowcoder.com)

题目二:组队竞赛_牛客笔试题_牛客网 (nowcoder.com)

第一题

分析: 

当我们看见这个题目的时候,可以使用传统的暴力查找方式,如判断第一个串的字符是否在第二个串中,在再挪动字符删除这个字符 的方式,效率为O(N^2),效率太低,很难让人满意。

  •  将第二个字符串的字符都映射到一个hashtable数组中,用来判断一个字符在这个字符串。
  • 判断一个字符在第二个字符串,不要使用删除,这样效率太低,因为每次删除都伴随数据挪动。这里可 以考虑使用将不在字符添加到一个新字符串,最后返回新新字符串

主要步骤就是:先定义一个哈希表,然后吧str2映射到HashTable中,然后再遍历映射HashTable中str1中的值,判断是否为0,然后用一个ret字符串来接受这个字符。最后打印输出就行。

代码题解:

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

第二题

分析: 

队伍的水平值等于该队伍队员中第二高水平值,为了所有队伍的水平值总和最大的解法,也就是说每个队伍 的第二个值是尽可能大的值 。所以实际值把最大值放到最右边,最小是放到最左边。首先我们就需要排序,然后用贪心的思想,直接从右像左取值就可。这个取值的过程可以抽象为:a[a.size()-2*(i+1)];这个2是第二大的意思,i代表的是第几组的最大值,也可以打印输出每组最大的结果,具体看题目要求。

代码题解:

#include<iostream>
#include<vector>
#include<algorithm>using namespace std;
int main()
{//定义一个组数,同时要判断一下边界条件。int n = 0;while (cin >> n){if (n <= 0){return 0;}vector <int> a;a.resize(3 * n);long long sum = 0;for (size_t i = 0; i < 3*n; i++){cin >> a[i];}for (size_t i = 0; i < n; i++){sum += a[a.size() - 2 * (i + 1)];}cout << sum << endl;}return 0;
}


http://www.ppmy.cn/devtools/32444.html

相关文章

基于php+mysql+html简单图书管理系统

博主介绍&#xff1a; 大家好&#xff0c;本人精通Java、Python、Php、C#、C、C编程语言&#xff0c;同时也熟练掌握微信小程序、Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验&#xff0c;能够为学生提供各类…

FPGA学习笔记(2)——Verilog语法及ModelSim使用

1.1 语法 1、赋值语句 和 < 为阻塞赋值&#xff0c;当该语句结束时&#xff0c;下一个语句才开始执行&#xff0c;串行执行 < 为非阻塞幅值&#xff0c;该语句和整个语句块同时执行&#xff0c;并行执行 1.2 ModelSim使用 1、修改源文件路径&#xff1a;File -> …

探索绘图神器draw.io:打造高效、灵活的图形设计新体验

探索绘图神器draw.io&#xff1a;打造高效、灵活的图形设计新体验 一、引言 在数字化时代&#xff0c;图形设计已经成为众多行业不可或缺的一部分。然而&#xff0c;对于非专业的图形设计师来说&#xff0c;如何快速、高效地完成图形设计任务&#xff0c;一直是一个挑战。今天…

MinIO实现简单文件上传【springboot】

文章目录 引入相关依赖配置application.yml文件编写minio的config文件编写minio的工具类图片文件上传测试 引入相关依赖 <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.6</version></depe…

【JavaEE】多线程安全问题

文章目录 1、什么是多线程安全问题2、出现线程不安全的原因2.1 线程在系统中是随机调度&#xff0c;抢占式执行的2.2 多个线程同时修改同一个变量2.3 线程针对变量的修改操作&#xff0c;不是“原子”的2.4 内存可见性问题2.5 指令重排序 3 、如何解决线程安全问题3.1 锁操作3.…

从零开始学AI绘画,万字Stable Diffusion终极教程(二)

【第2期】关键词 欢迎来到SD的终极教程&#xff0c;这是我们的第二节课 这套课程分为六节课&#xff0c;会系统性的介绍sd的全部功能&#xff0c;让你打下坚实牢靠的基础 1.SD入门 2.关键词 3.Lora模型 4.图生图 5.controlnet 6.知识补充 在第一节课里面&#xff0c;我们…

第19章 基于质量特性的测试技术

一、功能性测试 &#xff08;一&#xff09;测试方法 等价类边界值法因果图法判定表法场景法 &#xff08;二&#xff09;用例 1、正常用例 2、异常用例 &#xff08;三&#xff09;完备性 1、功能覆盖率 2、X1-A/B 功能覆盖率X&#xff1a;软件实际功能覆盖文档中所有…

Ubuntu Linux完全入门视频教程

Ubuntu Linux完全入门视频教程 UbuntuLinux完全入门视频教程1.rar UbuntuLinux亮全入门视频教程10.ra UbuntuLinux亮全入门视频教程11.ra UbuntuLinux完全入门视频教程12.ra UbuntuLinux亮全入门视频教程13.ra UbuntuLinux完全入门视频教程14.rar UbuntuLinux完全入门视频教程…