荣耀9.5 T3 神奇的做法

import sys
def mysort(x):
    return x.split("/")[1]+str(len(x))

if __name__ == "__main__":
    # 读取第一行的n
    n = int(sys.stdin.readline().strip())
    # 读取数据
    lines=[]
    for i in range(n):
        # 读取每一行
        line = sys.stdin.readline().strip()
        lines.append(line)
    # 去重
    myset=set()
    for line in lines:
        myset.add(line)
    lines=list(myset)
    # 按照时间大小排序->然后是长度
    lines.sort(key=mysort)
    # 输出结果
    for line in lines:
        print(line)

对,神奇之处就在于那个+str(len(x)),我本来只是想试试看能不能解决第二个问题(按照长度排序),结果ac了

顺便问问大佬们,荣耀加班严重吗?听说现在是国企了

#荣耀# #笔试#
全部评论

相关推荐

03-18 17:29
武汉大学 C++
电话约面,这次来了个更猛的
在西伯利亚种土豆:pcg我愿称之为kpi之神
点赞 评论 收藏
分享
03-15 20:26
已编辑
电子科技大学 C++
T3题面:给一个3e5数组,每次询问长度为len的子数组乘积的和,如果子数组乘积>1e9,则视为0.赛后一分钟想出来了,比赛时打了个暴力+线段树注意到1e9大约是2^30, 因此len长度如果>30就直接输出0,30以内做一个记忆化就行,复杂度O(30*n)感觉是以前比赛做过的题,忘了怎么做了。。。---upd: 忘了数据范围了,如果有0,1的话那这样也不行
blueswiller:给出一个做法,刚刚才想到,应该没问题,时间复杂度为 O(max(30n, nlogn)): 1. 根据 0 切分数组。2. 现在问题转化为>=1 的情况,我们首先维护每一个数前一个 > 1 的数的位置,同时维护一个长度的差分数组,初始值全为 0。3. 我们从每一个数 i 开始向前跳,至多跳 30 次,维护这个过程中的乘积,于是得到 30 个区间加和。举例:假设从 j1 跳到 j2 ,相当于对查询长度 (i- j1 + 1) 至 (i - j2) 贡献 a_i * ... * a_j1。4. 对于所有区间加和,我们采用差分数组结合树状数组对其进行维护,由于长度至多为 n ,树状数组构建的复杂度为 O(nlogn),于是,构建阶段的复杂度为 O(max(30n, nlogn))。在线单次查询的复杂度为树状数组查询的复杂度 O(logn)。
投递淘天集团等公司10个岗位 > 笔试
点赞 评论 收藏
分享
02-11 11:02
已编辑
门头沟学院 硬件开发
Just路人甲:个人建议,把“课程设计”删掉,面试官又不知道你到底是课设还是竞赛,他问你你就说竞赛整的。面试考察的是是你能否🐯得住面试官,即使你插葱装象只要他看不出来,那你也赢了。当然倘若你本身就很硬那自然无懈可击。身边有哥们就是这么拿下心中的 offer 的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务