首页 > 编程语言 >华为实习4.10机考第一题C++代码

华为实习4.10机考第一题C++代码

时间:2024-04-15 16:25:57浏览次数:23  
标签:4.10 int hashh C++ 机考 ss client factor include

华为2024.4.10机考第一题C++代码

第一题是一个关于字符串的模拟,但是对于C++来说,处理起来还是比较麻烦的。

难点就是在输入时各字符串是用逗号分割的。

#include<iostream>
#include<unordered_map>
#include<sstream>
#include<vector>
#include<algorithm>
using namespace std;

const int N = 1010;

typedef pair<string,string> PSS;

unordered_map<string, PSS> hashh;
unordered_map<string, int> hash1;
unordered_map<string, int> Factor;

int main(){
	int n , m;
	cin >> n ;
	string time[N], client[N], factor[N], init;
	int x[N];
	for(int i = 0 ; i < n ; i ++){
		cin >> init; 
		stringstream ss(init);
		getline(ss, time[i], ',');
		getline(ss, client[i], ',');
		getline(ss, factor[i], ',');
		ss >> x[i]; 
		if(x[i] < 0 || x[i] > 100) x[i] = 0;
	}
	cin >> m;
	for(int i = 0 ; i < m ; i ++){
		string s , factor1;
		int xx;
		cin >> s;
		stringstream ss(s);
		getline(ss, factor1, ',');
		ss >> xx;
		Factor[factor1] = xx; 
	}
	for(int i = 0 ; i < n ; i ++){
		if(hashh.find(client[i])!= hashh.end() && hashh[client[i]].first == time[i] && hashh[client[i]].second == factor[i]) continue;
		hashh[client[i]] = {time[i], factor[i]};
		hash1[client[i]] += x[i] * Factor[factor[i]];
	}
	vector<pair<string,int>> v;
	for(auto it: hash1){
		v.push_back({it.first,it.second});
	}
	sort(v.begin(),v.end());
	for(int i = 0 ; i < v.size(); i ++) cout << v[i].first << "," << v[i].second << endl;
	return 0;
	
}

因为没有评测器,只过了测试样例,不确定是否能AC,希望各位大佬批评指正!

标签:4.10,int,hashh,C++,机考,ss,client,factor,include
From: https://www.cnblogs.com/ZhaoHaoFei/p/18136204

相关文章

  • 记录解决VS 2022调试C++ DLL项目时卡顿的问题
    项目结构运行时为DotNet6的C#通过Cli/C++去调用C++的DLL。问题表现在VisualStudio2022中调试C++DLL代码时,按下F5、F10、F11跳转到下一行时VS卡顿会2秒左右,体验非常不好。问题原因然后发现原因是项目的配置属性中,调试那一行,调试器类型选择的是“自动”。解决此问题的方法......
  • C++对象封装后的内存布局
    在C语言中,数据和数据的处理操作(函数)是分开声明的,在语言层面并没有支持数据和函数的内在关联性,我们称之为过程式编程范式或者程序性编程范式。C++兼容了C语言,当然也支持这种编程范式。但C++更主要的特点在支持基于对象(object-based,OB)和面向对象(object-oriented,OO),OB和OO的基础是......
  • C / C++ 文件简单混编 + 轻量级日志系统使用
    在项目工程里面,不一定全部是c或者c++文件,有时候是混合一起,这个时候如果使用makefile编译的话,就要考虑兼容两种类型的文件编译了;实战经验如下:根据自己的风格制作响应的打印和日志记录,makefile编写如下:CC=gccCPP=g++#文件夹路径ROOTPATH=.INCLUDE=-I./cfg/inc-I$(......
  • C++数据结构和pb数据结构的转换
    1.C++topb1.1map嵌套对象结构 //pb数据结构messageInner{repeatedstringcodes=1;map<string,string>ext=2;};messageOuter{map<int32,Inner>uint2Inner=1;map<string,string>ext=2;};赋值代码:Outerreq;req.mu......
  • 第十五届蓝桥杯C++B组省赛总结
    A握手问题简单模拟,答案为:12045ptsB小球反弹数学,最重要的一点,不考虑反弹,一直让小球走,直到达到一个顶点,它就会反弹回去。所以问题就变成了扩展这些方块,直到满足小球的角度,让小球能达到另一个顶点。\(233333\times15a=343720\times17b\)解出来a和b就知道我们要延......
  • 【编程】C++ 常用容器以及一些应用案例
    介绍一些我常用的C++容器和使用方法,以及使用案例。blog1概述容器(Container)是一个存储其他对象集合的持有者对象。容器以类模板实现,对支持的元素类型有很大的灵活性。容器管理元素的存储并提供多个成员函数来访问和操作元素。两个主要类别:序列容器(Sequencecontainer):将元素维......
  • 【数学】向量点乘、叉乘的理论、应用及代码实现(C++)
    前言我总结了一下向量点乘,叉乘的概念,以及他们的应用及相关C++代码的实现。blog这类问题也是技术面试经常碰到的,一次研究透了会有收获。1向量向量具有大小和方向。共线向量:两个平行的向量为共线向量。1.1叉积CrossProduct$$\vec{a}\times\vec{b}=|\vec{a}||\vec{b}|\sin......
  • C++U6-12-阶段复习测评
          7、贝尔曼福特算法,是按顺序一轮一轮的松弛,如果有可以松弛的那就再来一轮;这个题第二轮就没有可以松弛的了,所以就没有第3轮了 8、这题是dijkstra算法,算法逻辑是:Dijkstra最短路径算法的步骤如下:初始化:创建一个距离数组 dist,用于存储起点到每个节点......
  • 01_C++基础
    C++基础1.什么是c++。​c++是c语言的升级版,在c的基础上增加了很多功能。是一种高级语言。2.什么是面向对象,什么又是面向过程。​c语言就是面向过程的,c++就是面向对象的。举例:a+b​直接计算a+b就是面向过程。​面向对象就是给a+b穿上了一层衣服。不......
  • c++ inline
    当在头文件中定义函数时,如果这个头文件被多个.cpp文件包含,那么每个包含该头文件的.cpp文件都会有一个该函数的副本。这在链接阶段会引起“多重定义”的错误,因为链接器找到多个相同符号的定义。使用inline关键字可以解决这个问题。当一个函数被声明为inline,编译器会尝试将......