携程笔试

import sys
from collections import Counter
string = input()
cnt = Counter(string)
new = {
    'y': cnt['y'],
    'o': cnt['o'],
    'u': cnt['u']
}
nums = min(new.values())
res = 'you' * nums
for k, v in cnt.items():
    if k in 'you' and v > nums:
        # print(k,v)
        res += str(k) * (v-nums)
    elif k not in 'you':
        res += str(k) * v
print(res)
# 暴力会超时间,用正反序前缀和,空间换时间
import sys
n = int(input())
nums = list(map(int, input().split()))
sorted_nums = sorted(nums)
left = [0] * n
cum = 0
for i in range(n):
    cum += sorted_nums[i]
    left[i] = cum
right = [0] * n
cum = 0
for i in range(n-1, -1, -1):
    cum += sorted_nums[i]
    right[i] = cum
hashmp = dict()
for i in range(n):
    if sorted_nums[i] in hashmp:
        continue
    if i > 0:
        ops_left = sorted_nums[i] * i - left[i-1]
    else:
        ops_left = 0
    
    if i < n-1:
        ops_right = right[i+1] - sorted_nums[i] * (n-i-1)
    else:
        ops_right = 0
    
    hashmp[sorted_nums[i]] = ops_left + ops_right
for i in nums:
    print(hashmp[i])
import sys
import re
array = input()
new_pairs = re.findall(r'([-\d]+)\(([\d]+)\)', array)
res = '['
i, n = 0, len(new_pairs)
while i < n:
    key = new_pairs[i][0]
    val = int(new_pairs[i][1])
    idx = i + 1
    while idx < n and new_pairs[idx][0] == key:
        val += int(new_pairs[idx][1])
        idx += 1
    i = idx
    if i != n:
        res += str(key)+'('+str(val)+')'+',' 
    else:
        res += str(key)+'('+str(val)+')'+']' 
    
print(res)

#携程##算法##笔试#
全部评论
第二题换成前缀和也超了崩溃
1 回复 分享
发布于 2024-03-13 21:01 江苏
楼主,笔试是四道编程题?有没有额外的八股题?单选题之类的?
点赞 回复 分享
发布于 2024-03-26 16:33 江苏
携程不是测评吗?还是说测评+笔试?
点赞 回复 分享
发布于 2024-03-18 12:29 广东
方便问下楼主投的什么岗位吗
点赞 回复 分享
发布于 2024-03-16 13:21 湖南
携程没给机会笔试哎
点赞 回复 分享
发布于 2024-03-13 21:20 广东
最后一题什么思路呀
点赞 回复 分享
发布于 2024-03-13 20:49 北京

相关推荐

02-23 00:10
湖南大学 C++
一颗甜柠檬🍋:如果还在找的话 试试宝藏小厂游戏公司,不黑不卷
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
02-26 16:57
明天不下雨了:把第二个项目放第一个去,其他没什么问题,多投,这世道就这样
点赞 评论 收藏
分享
评论
3
15
分享

创作者周榜

更多
牛客网
牛客企业服务