华为实习生机试
一共三道题目,都比较简单。 第一道忘了,考察vector的用法 第二道考察map的用法,主要是排序 第三道并查集 除了第三道不知道为啥没有A出来,其中第二道考察了map如何排序,还是比较不错的。 输入字符串,最后输出每个字母出现的次数。如果不是字母不统计。最后按照出现的次数进行从大到小排序,如果次数相同,谁先出现在字符串里面就排在前面。 map是没法直接排序的,它是由pair组成的,我们定义一个 pair类型 ,再把这些pair放到vector里面进行sort排序。 #include <iostream> #include <stdio.h> #include <algorithm> #include <math.h> #include <string.h> #include <set> #include <map> #include <vector> using namespace std ; const int maxn = 111 ; map < char , int > dic; typedef pair< char , int > pp; //定义pair vector <pp> boom; map < char , int > ran; //字符出现的先后顺序 bool cmp(pp a,pp b) { if (a.second==b.second) return