A8站源码交易平台 书面考试代码题记载 190601

摘要:思路剖析:设置两个指针left和right,left作为外层循环遍历,每一次固定left,意味着将榜首个奸细固定在left方位,然后right指针右移,一直到无法移动停止(移到终究或许规模超界),核算left和right之间的空位假设为num个,则后两个奸细的站位共有C2num C^2_{num}C num

A8站源码交易平台

字节跳动

190531 字符串校对程序
标题链接 https://www.nowcoder.com/question/next?pid=16516564&qid=362291&tid=24204822
标题要求:
1.png

2.png


n = int(input())
while n > 0:
    ss = input()
    res = []
    for char in ss:
        if len(res) < 2:
            res.append(char)
            continue
        if len(res) >= 2:
            if char == res[-1] and char == res[-2]:
                continue
        if len(res) >= 3:
            if char == res[-1] and res[-2] == res[-3]:
                continue
        res.append(char)
    n -= 1

    print("".join(res))



190601 有约束条件的C2n C^2_nC 
n
 问题

3.png

4.png

思路剖析:设置两个指针left和right,left作为外层循环遍历,每一次固定left,意味着将榜首个奸细固定在left方位,然后right指针右移,一直到无法移动停止(移到终究或许规模超界),核算left和right之间的空位假设为num个,则后两个奸细的站位共有C2num C^2_{num}C 
num

 种,然后顺次遍历left。留意边界条件。

n, disk = map(int, input().split())
nums = list(map(int, input().split()))

res = 0
left, right = 0, 2
while left < n - 2:
    while(right < n and nums[right] - nums[left] <= disk):
        right += 1  # 直到找到最右边的下一个方位
    if right - left > 2: # 等于2只要一种或许
        num = right - left - 1
        res += num * (num - 1) // 2
    left += 1
print(res % 99997867)




190601 打麻将能够胡的牌
https://www.nowcoder.com/test/question/done?tid=24202466&qid=362292#summary

5.png


思路剖析:


能够胡的牌总共有1-9这9种或许性,先判别给定的13张牌里有没有4张相同的,假如有,则证明这张牌现已拿满了,不能再胡这张,能够扫除,所以能够胡的牌便是card_list列表里剩余的那些。
遍历card_list列表,将给定的13张和card_list列表里当时的牌送入helper函数,判别能不能胡,假如能胡,就将当时牌添加到res里,用于终究的输出。
关于helper函数,榜首次调用的时分,传进来是按次序码好的14张牌,先判别榜首张牌有几张,假如大于2张,则能够作为雀头,递归判别nums[2:];假如大于3张,能够作为顺子,递归判别nums[3:];也能够判别nums里是否包括榜首张牌在内的ABC型顺子,假如是,则去掉该顺子,递归判别剩余的nums列表。A8站源码交易平台
from collections import Counter

# 判别是否能够胡牌
def helper(nums):
    if not nums:
        return True
    quetou = nums.count(nums[0]) # 先找雀头
    if len(nums) % 3 != 0 and quetou >= 2 and helper(nums[2:]): # len(nums) % 3 != 0条件约束不能呈现多个雀头(防止呈现AABBCCDD的状况,不符合要求)
        return True
    if quetou >= 3 and helper(nums[3:]): # 移除AAA类型的顺子,看后面的能不能胡牌
        return True

    if nums[0] + 1 in nums and nums[0] + 2 in nums:  # 判别ABC类型的顺子能否胡牌
        tmp_nums = nums.copy()  # 这儿必定要用copy函数,不能直接删去nums的元素
        tmp_nums.remove(nums[0])
        tmp_nums.remove(nums[0] + 1)
        tmp_nums.remove(nums[0] + 2)
        if helper(tmp_nums):
            return True
    return False # 以上条件都不满意,则不能胡牌

nums = list(map(int, input().split()))
d = Counter(nums)
res = []
card_list = set(range(1,10)) - {i for i,v in d.items() if v == 4} # 把等于4的牌扫除去,由于手里现已拿四张了,不或许还胡这张牌
for i in card_list: #一切或许胡的牌
    if helper(sorted(nums + [i])): # 假如参加i这张牌能胡,则将i参加res中 【留意】必定要用sort函数排好序再输入helper函数,
        res.append(i)
print(" ".join(str(i) for i in res) if res else 0)

 

190601 特征提取

7.png

n = int(input())
while n > 0:
    m = int(input()) # 代表视频的帧数
    res = 0  # 用来存储终究成果
    d = {}  # 用来存储每组特征接连呈现多少次
    while m > 0:
        data = list(map(int, input().split()))
        if data[0] <= 0:
            if d:
                res = max(max(d.values()), res)
                d = {}
            m -= 1
            continue
        i = 1
        while i < len(data):
            d[(data[i], data[i + 1])] = d.get((data[i], data[i + 1]), 0) + 1
            i += 2
        res = max(max(d.values()), res)
        m -= 1
    print(res)
    n -= 1



190601 结业游览
 

8.png


190601 找零
 

9.png


190601 机器人跳动问题

10.png


拼多多2019
3. 两两配对差值最小
给定一个长度为偶数的数组arr,将该数组中的数字两两配对并求和,在这些和中选出最大和最小值,请问该怎么两两配对,才能让最大值和最小值的差值最小?

输入描绘:
总共2行输入。
榜首行为一个整数n,2<=n<=10000, 第二行为n个数,组成方针数组,每个数大于等于2,小于等于100。

输出描绘: 输出最小的差值。

输入比如1:
4
2 6 4 3

输出比如1:

1


解法:先对输入数组排序,排序后两端的相加,将成果记录在res中,再对res排序,并取最大值和最小值的差值即可。

A8站源码交易平台


n = int(input())
nums = list(map(int, input().split()))
nums.sort()
i, j = 0, len(nums) - 1
res = []
while i < j:
    res.append(nums[i] + nums[j])
    i += 1
    j -= 1
res.sort()
print(res[-1] - res[0])



4. 回合制游戏
你在玩一个回合制人物扮演的游戏。现在你在预备一个战略,以便在最短的回合内打败敌方人物。在战役开始时,敌人具有HP格血量。当血量小于等于0时,敌人死去。一个缺乏经验的玩家或许简略地测验每个回合都进犯。可是你知道辅佐技术的重要性。
在你的每个回合开始时你能够挑选以下两个动作之一:聚力或许进犯。
聚力会进步你下个回合进犯的损伤。
进犯会对敌人形成必定量的损伤。假如你上个回合运用了聚力,那这次进犯会对敌人形成buffedAttack点损伤。不然,会形成normalAttack点损伤。

给出血量HP和不同进犯的损伤,buffedAttack和normalAttack,回来你能杀死敌人的最小回合数。A8站源码交易平台



输入描绘:

榜首行是一个数字HP
第二行是一个数字normalAttack
第三行是一个数字buffedAttack
1 <= HP,buffedAttack,normalAttack <= 10^9




输出描绘:
输出一个数字表明最小回合数

输入比如1:

13
3
5

输出比如1:

5

解法(数学规则):【参阅】

直接用数学规则去剖析:A8站源码交易平台


1)假如buffedAttack <= 2 * normalAttack,那么全程运用normalAttack更合算
2)假如buffedAttack > 2 * normalAttack,那么优先运用buffedAttack更合算,假如hp % normalAttack > 0,当余数小于normalAttack,终究一回合用normalAttack就能杀死敌人;假如hp % normalAttack == 0,那么必定全程运用buffedAttack更合算。

import math
hp = int(input())
normal = int(input())
buffed = int(input())
if normal * 2 >= buffed:
    print(math.ceil(hp / normal))
else:
    res = 0
    res += (hp // buffed) * 2
    hp = hp % buffed
    if hp != 0 and hp <= normal:
        res += 1
    elif hp != 0 and hp > normal:
        res += 2
    print(res)
 ———————————————— 

A8站源码交易平台


  • 全部评论(0)
最新发布的资讯信息
【A8站-免费源码分享|直播源码】直播系统源码开发:关于安卓开发工具和obs直播推流(2020-10-30 09:41)
【计算机/互联网|】【独家修复】用户定制版短视频点赞系统,支持抖音+快手+刷宝+微视等所有主流短视频评论系统源码(2020-10-26 16:34)
【技术宅-为技术而疯|网站架设教程】【独家首发】最新更新已对接短信2020全新抖音快手点赞任务系统霸屏天下小红书头条威客兼职完整搭建架设视频教程(2020-10-25 13:56)
【技术宅-为技术而疯|网站架设教程】最新可用个人发卡网系统源码完整搭建架设视频教程(2020-10-25 10:53)
【技术宅-为技术而疯|网站架设教程】独家更新全新V10抢单系统唯品会京东淘宝自动抢单区块系统源码全开源抢单收单接单返利+搭建架设完整视频教程(2020-10-25 10:52)
【计算机/互联网|】柔丫纸尿裤云仓系统源码部署(2020-10-15 18:13)
【计算机/互联网|】侏罗纪软件模式定制开发(2020-10-14 15:33)
【计算机/互联网|】S2b2C供应商系统 营销闭环(2020-10-10 17:46)
【计算机/互联网|程序设计开发】盛都汇系统奖励机制(2020-10-10 17:20)
【A8站-免费源码分享|网站源码】积分商城系统APP开发(2020-09-23 14:56)
联系我们
Q Q:3101359898 点击直接对话
电话:18580901894
邮箱:admin#a8zhan.com
时间:09:00 - 24:00
手机二维码 访问手机版
返回顶部