华为第三题求ac代码

求华为第三题思路


#华为##笔试题目#
全部评论
package 华为; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Main3 {     public static void main(String[] args) {         HashMap<String, String> map=new HashMap<String, String>();         HashMap<String, String> map1=new HashMap<String, String>();         Scanner sc=new Scanner(System.in);         int n=sc.nextInt();         String[] old=new String[n];         for(int i=0;i<old.length;i++){             old[i]=sc.next();             map.put(old[i].split(",")[2], old[i].split(",")[0]+","+old[i].split(",")[1]);         }         int m=sc.nextInt();         String[] news=new String[m];         for(int j=0;j<m;j++){             news[j]=sc.next();             map1.put(news[j].split(",")[0]+","+news[j].split(",")[1], news[j].split(",")[2]+","+news[j].split(",")[3]);         }                  for(Map.Entry<String, String> entry:map.entrySet()){             if(map1.containsKey(entry.getValue())){                 map.put(entry.getKey(), map1.get(entry.getValue()));             }         }         for(Map.Entry<String, String> entry:map.entrySet()){             System.out.println(entry.getValue()+","+entry.getKey());         }                       } } 最后没时间排序了,c了0.1   如果排序后差不多能c
点赞 回复 分享
发布于 2019-09-11 21:59
from collections import OrderedDict import sys lines = sys.stdin.readlines() n = int(lines[0].strip()) old_l = lines[1:n+1] m = int(lines[n+1].strip()) transfer_l = lines[n+2:] old = OrderedDict() transfer = dict() jwr = dict() for o in reversed(old_l):     e1, e2, e3 = o.strip().split(",")     if (e1, e3) in jwr:         continue     old[(e1, e2)] = e3     jwr[(e1, e3)] = e2 last_name = dict() for t in reversed(transfer_l):     e1, e2, e3, e4 = t.strip().split(",")     if (e1, e2) in transfer:         continue     transfer[(e1, e2)] = (e3, e4)     last_name[(e3, e4)] = old[(e1, e2)] new_air_seat = dict() seat_taken = set() air_taken = set() for k in old:     user = old[k]     if k not in transfer:         new_air, new_seat = k         if (new_air, new_seat) not in seat_taken and (user, new_air) not in air_taken:             new_air_seat[k] = old[k]         continue     new_air, new_seat = transfer[k]     if (new_air, new_seat) not in seat_taken and (user, new_air) not in air_taken:         new_air_seat[(new_air, new_seat)] = user         seat_taken.add((new_air, new_seat))         air_taken.add((user, new_air)) # print(new_air_seat) r = [] for k in sorted(new_air_seat.keys()):     if k in last_name.keys() and new_air_seat[k] != last_name[k]:         continue     r.append("%s,%s,%s" % (k[0], k[1], new_air_seat[k])) for rr in r:     print(rr) # print(old) # print(transfer) 总体来说考虑的还是挺多的
点赞 回复 分享
发布于 2019-09-11 22:00
我只过了0.5
点赞 回复 分享
发布于 2019-09-11 22:11
0.9,这次笔试难度比网易互娱还低,倒序从改签机票开始,记录改变后的座位和被调整的座位,每次加入座位都要判断这个座位是不是被占用,以及同一个人是不是在这个航班已经订机票了,然后倒序把原始机票加上去,注意判断之前的3个条件(座位是不是被占用,座位是不是被调整,在这个航班是不是已经订过座位了)
点赞 回复 分享
发布于 2019-09-11 22:20

相关推荐

评论
点赞
11
分享

创作者周榜

更多
牛客网
牛客企业服务