网站邮箱登陆代码网站搭建分站需要多少钱
2026/4/18 15:49:10 网站建设 项目流程
网站邮箱登陆代码,网站搭建分站需要多少钱,松原做网站公司,做小程序还是做网站明日之星选举 2026华为OD机试双机位C卷 - 华为OD上机考试双机位C卷 100分题型 华为OD机试双机位C卷真题目录点击查看: 华为OD机试双机位C卷真题题库目录#xff5c;机考题库 算法考点详解 题目描述 给定一组选票votes[],vote[i]代表第i张选票的内容#xff0c;包含一个字…明日之星选举2026华为OD机试双机位C卷 - 华为OD上机考试双机位C卷 100分题型华为OD机试双机位C卷真题目录点击查看: 华为OD机试双机位C卷真题题库目录机考题库 算法考点详解题目描述给定一组选票votes[],vote[i]代表第i张选票的内容包含一个字符串zhangsan,hanmei,表示推荐zhangsan称为明日之星返回hanmei称为明日之星。赞成或返回使用逗号(,)分割。给定一个数组n表示最后将筛选成票最多的n个人如果赞成票相同则反对票越少排序越靠前如果赞成票和反对票都相同则按照姓名字典序升序排序。注意1 votes.length 5001 votes[i].length 20vote[i]由小写字母和逗号组成且最多只有一个逗号。vote[i]中赞成票必选反对票可选。n的取值范围为[1, 不同姓名的数量]输入描述第一行输入为M表示选票的数量其中1 M 500接下来M行为选票具体内容最后一行输入为N表示最终当选明日之星的人员个数1 N 不同姓名的数量输出描述输出一个字符串返回当选的N个人的姓名顺序排列逗号分割。用例1输入6 zhangsan,hanmei zhangsan,lisi lisi lisi wangwu hanmei 2输出zhangsan,lisi示例二输入4 zhangsan,lisi lisi,wangwu wangwu,qianliu qianliu,zhangsan 2输出lisi,qianliu说明zhangsan:1赞成1反对 lisi:1赞成1反对 wangwu:1赞成1反对 qianliu:1赞成1反对 票数情况相同按照字典序升序返回lisi,qianliu题解思路逻辑分析 在自定义排序自定义结构体或者类存储所有出现人的选票情况对于python和C等语言统计选票可以使用哈希表进行处理C语言通过线性扫描也是可以的。将所有人的选票情况使用一个类/结构体数组存储然后按照题目要求进行排序即可。按照题目要求规则输出前n个人的名字。c#includeiostream #includevector #includestring #include utility #include sstream #includealgorithm #includecmath #includemap #includeset using namespace std; struct Person{ string name; int agreeCount; int disagreeCount; Person(){} Person(string name, int agreeCount, int disagreeCount): name(name), agreeCount(agreeCount), disagreeCount(disagreeCount){} }; // 通用 切割函数 函数 将字符串str根据delimiter进行切割 vectorstring split(const string str, const string delimiter) { vectorstring result; size_t start 0; size_t end str.find(delimiter); while (end ! string::npos) { result.push_back(str.substr(start, end - start)); start end delimiter.length(); end str.find(delimiter, start); } // 添加最后一个部分 result.push_back(str.substr(start)); return result; } int main() { int m; cin m; // 存储每个人同意票数/不同票数 mapstring,int personAgreeNum; mapstring,int personDisagreeNum; // 所有出现的名字 setstring allName; for (int i 0; i m; i) { string vote; cin vote; vectorstring voteName split(vote, ,); personAgreeNum[voteName[0]]; allName.insert(voteName[0]); // 可选 if (voteName.size() 2) { personDisagreeNum[voteName[1]]; allName.insert(voteName[1]); } } int n; cin n; vectorPerson allPeopleScore; for (auto name : allName) { allPeopleScore.push_back({name, personAgreeNum[name], personDisagreeNum[name]}); } // 自定义排序 sort(allPeopleScore.begin(), allPeopleScore.end(), [](Person a, Person b) { if (a.agreeCount b.agreeCount) { if (a.disagreeCount b.disagreeCount) { return a.name b.name; } return a.disagreeCount b.disagreeCount; } return a.agreeCount b.agreeCount; }); // 输出结果 for (int i 0; i n; i) { if (i ! 0) { cout ,; } cout allPeopleScore[i].name; } return 0; }C语言#includestdio.h#includestring.h#includestdlib.h#defineMAXN1000#defineNAMELEN25typedefstruct{charname[NAMELEN];intagree;intdisagree;}Person;Person people[MAXN];intcnt0;// 查找人名存在返回下标不存在返回 -1intfind(char*name){for(inti0;icnt;i){if(strcmp(people[i].name,name)0){returni;}}return-1;}// 排序规则intcmp(constvoid*a,constvoid*b){Person*x(Person*)a;Person*y(Person*)b;if(x-agree!y-agree)returny-agree-x-agree;// 同意票多的优先if(x-disagree!y-disagree)returnx-disagree-y-disagree;// 反对票少的优先returnstrcmp(x-name,y-name);// 名字字典序}intmain(){intm;scanf(%d,m);for(inti0;im;i){chars[2*NAMELEN];scanf(%s,s);char*pstrchr(s,,);if(p){*p\0;char*as;char*bp1;intiafind(a);if(ia-1){strcpy(people[cnt].name,a);people[cnt].agree1;people[cnt].disagree0;cnt;}else{people[ia].agree;}intibfind(b);if(ib-1){strcpy(people[cnt].name,b);people[cnt].agree0;people[cnt].disagree1;cnt;}else{people[ib].disagree;}}else{intidxfind(s);if(idx-1){strcpy(people[cnt].name,s);people[cnt].agree1;people[cnt].disagree0;cnt;}else{people[idx].agree;}}}intn;scanf(%d,n);// 自定义排序qsort(people,cnt,sizeof(Person),cmp);for(inti0;in;i){if(i)printf(,);printf(%s,people[i].name);}return0;}JAVAimport java.io.*; import java.util.*; public class Main { static class Person { String name; int agreeCount; int disagreeCount; Person(String name, int agreeCount, int disagreeCount) { this.name name; this.agreeCount agreeCount; this.disagreeCount disagreeCount; } } public static void main(String[] args) throws Exception { BufferedReader br new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; int m Integer.parseInt(br.readLine()); // 存储每个人同意票数 / 不同意票数 MapString, Integer agreeMap new HashMap(); MapString, Integer disagreeMap new HashMap(); // 所有出现的名字 SetString allName new HashSet(); for (int i 0; i m; i) { String vote br.readLine(); String[] arr vote.split(,); agreeMap.put(arr[0], agreeMap.getOrDefault(arr[0], 0) 1); allName.add(arr[0]); // 返回票可选 if (arr.length 2) { disagreeMap.put(arr[1], disagreeMap.getOrDefault(arr[1], 0) 1); allName.add(arr[1]); } } int n Integer.parseInt(br.readLine()); ListPerson list new ArrayList(); // 统一用数组存储 for (String name : allName) { list.add(new Person( name, agreeMap.getOrDefault(name, 0), disagreeMap.getOrDefault(name, 0) )); } // 自定义排序 list.sort((a, b) - { if (a.agreeCount ! b.agreeCount) return b.agreeCount - a.agreeCount; if (a.disagreeCount ! b.disagreeCount) return a.disagreeCount - b.disagreeCount; return a.name.compareTo(b.name); }); // 构建结果 StringBuilder sb new StringBuilder(); for (int i 0; i n; i) { if (i 0) sb.append(,); sb.append(list.get(i).name); } System.out.println(sb.toString()); } }Pythonimportsysdefmain():inputsys.stdin.readline mint(input())# 存储每个人同意票数 / 不同意票数agree{}disagree{}# 所有出现的名字all_nameset()for_inrange(m):voteinput().strip()arrvote.split(,)agree[arr[0]]agree.get(arr[0],0)1all_name.add(arr[0])iflen(arr)2:disagree[arr[1]]disagree.get(arr[1],0)1all_name.add(arr[1])nint(input())people[]fornameinall_name:people.append((-agree.get(name,0),# 取负数用于降序disagree.get(name,0),name))# 排序规则同意票降序不同意票升序名字字典序people.sort()result[people[i][2]foriinrange(n)]print(,.join(result))if__name____main__:main()JavaScriptconstreadlinerequire(readline);constrlreadline.createInterface({input:process.stdin,output:process.stdout});letlines[];rl.on(line,(line){lines.push(line.trim());});rl.on(close,(){letidx0;constmparseInt(lines[idx],10);// 存储每个人同意票数 / 不同意票数constagreenewMap();constdisagreenewMap();constallNamenewSet();for(leti0;im;i){constvotelines[idx];constarrvote.split(,);agree.set(arr[0],(agree.get(arr[0])||0)1);allName.add(arr[0]);// 可选的反对票if(arr.length2){disagree.set(arr[1],(disagree.get(arr[1])||0)1);allName.add(arr[1]);}}constnparseInt(lines[idx],10);// 构造人员信息列表letpeople[];for(letnameofallName){people.push({name:name,agreeCount:agree.get(name)||0,disagreeCount:disagree.get(name)||0});}// 自定义排序// 1. 同意票多的在前// 2. 不同意票少的在前// 3. 名字字典序people.sort((a,b){if(a.agreeCount!b.agreeCount){returnb.agreeCount-a.agreeCount;}if(a.disagreeCount!b.disagreeCount){returna.disagreeCount-b.disagreeCount;}returna.name.localeCompare(b.name);});// 输出前 n 个名字letresult[];for(leti0;in;i){result.push(people[i].name);}console.log(result.join(,));});Gopackagemainimport(bufiofmtossortstrings)typePersonstruct{namestringagreeCountintdisagreeCountint}funcmain(){in:bufio.NewReader(os.Stdin)varmintfmt.Fscan(in,m)// 存储每个人同意票数 / 不同意票数agree:make(map[string]int)disagree:make(map[string]int)// 所有出现的名字allName:make(map[string]bool)fori:0;im;i{varvotestringfmt.Fscan(in,vote)arr:strings.Split(vote,,)agree[arr[0]]allName[arr[0]]true// 返回掉可选iflen(arr)2{disagree[arr[1]]allName[arr[1]]true}}varnintfmt.Fscan(in,n)people:make([]Person,0)forname:rangeallName{peopleappend(people,Person{name:name,agreeCount:agree[name],disagreeCount:disagree[name],})}// 自定义排序sort.Slice(people,func(i,jint)bool{ifpeople[i].agreeCount!people[j].agreeCount{returnpeople[i].agreeCountpeople[j].agreeCount}ifpeople[i].disagreeCount!people[j].disagreeCount{returnpeople[i].disagreeCountpeople[j].disagreeCount}returnpeople[i].namepeople[j].name})// 输出结果fori:0;in;i{ifi0{fmt.Print(,)}fmt.Print(people[i].name)}}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询