当前位置 博文首页 > boysoft2002的专栏:一起挑战pythontip的题目(16)

    boysoft2002的专栏:一起挑战pythontip的题目(16)

    作者:[db:作者] 时间:2021-07-27 17:49

    第76题:QQ音速
    题目描述:最近Py开始玩qq音速,这个游戏只需要按4个键,上,下,左,右(分别用u,d,l,r表示)。
    Py必须按照游戏规则,依次按下一系列键。问题是Py的手太胖了,他只能把两个手指放在方向键上。
    Py把一个手指从键i移动到键j,要耗费w[i][j]的体力,而按键不需要耗费体力。
    由于Py反应比较慢,所以他每次只能移动一个手指。现在可怜的Py问你,他最少耗费多少体力?
    假设Py一开始就把手指放在左、右两个键上。?

    下面是w[i][j]数组?
    ? u d l r?
    u 0 1 2 2?
    d 1 0 1 1?
    l 2 1 0 2?
    r 2 1 2 0?
    现在给你一个仅由0,1,2,3(分别表示u,d,l,r)组成的字符串str,表示Py需要依次按下的键,串的长度不超过10^6.
    请你输出Py最少需要耗费的体力值。
    如:str="01230123", 则输出8。
    示例:输入:str = "01230123"
    输出:8


    ============================================================
    第77题:寻找最小的数
    题目描述:现在我们手里有一张2维的正整数(包括0)表.对于第i行第j列的那个数我们有如下定义:a[i][j]是 a[i][k]{其中0<=k<j}和a[k][j]{其中0<=k<i}没有出现的那个最小的正整数比如a[0][0]=0;现在给你两个非负整数x,y,(0 <= x,y <= 10^9),请你输出a[x][y]的值。如:x=0,y=0, 则输出0 ? ?x=0,y=1, 则输出1 ? ?x=1,y=0, 则输出1 ? ?x=1,y=1, 则输出0
    示例:输入:x = 0
    y = 0
    输出:0


    ============================================================
    第78题:滑雪比赛
    题目描述:我们把场地分为一个个的格子,给每个格子标定一个整数,代表这个格子所代表的地面的海拔高度。
    比赛的参赛者可以从任意一个格子开始,但只能向相邻的四个格子移动,并且目地格子的高度必须
    小于现在所在格子的高度。我们假设从一个格子滑行到另一个格子所用的时间为1个单位时间。
    现在告诉你滑雪场的大小为n*m, 并给你一个n行m列的整数二维列表H,表示每个格子的海拔高度。
    请你计算出在这个场地上最长能滑行多少时间。
    如:
    n = 4
    m = 4
    H= [
    ? ? [1, 2, 3, 4],
    ? ? [5,6,7,8],
    ? ? [9,10,11,12],
    ? ? [13,14,15,16]
    ? ? ]
    则输出 6.
    示例:输入:n = 4
    m = 4
    H = [[1, 12, 11, 10], [2, 13, 16, 9], [3, 14, 15, 8], [4, 5, 6, 7]]
    输出:15


    ============================================================
    第79题:考古学家的困境
    题目描述:一个考古学家正在发掘古代的一座城市时,不小心被一个部分毁坏的石墙绊倒了。那个石墙上有数行奇异的数。这些数的前几位完整无缺,但不幸地,其余位的数字由于侵蚀作用而无法辨认。尽管如此,他注意到每一行完好的数字都像是2的幂的前几位,他就猜想这个石墙上原先的所有数都是2的幂。为了验证自己的想法,他选择了能看清楚的一些数写成列表,并把列表交给你,请你求出最小的2的幂使幂的前若干位与他提供的列表中的数一致。所以你必须写一个程序,对于给定的整数N(1 <= N <= 100),求出最小的指数E使这个数的前若干位与N相同。注意:N的长度必须小于2^E的长度的一半。如N=1,当E等于4时,虽然2^4=16,但因为1的长度等于16的长度的一半,所以不满足题上的条件,而只有在E等于7时,2^7=128才满足题意。因此,N = 1时, 输出7
    示例:输入:N = 1
    输出:7


    ============================================================
    第80题:单词接龙
    题目描述:今天说的单词接龙不是传统意义上的单词接龙。我们的游戏如下:
    给你两个词,a和b,现在请你经过一系列转换,将a转换成b。
    转换规则:每个词在转换的时候,只能修改其中一个字母(不能删除或者插入),
    转换过程中得到的词必须是正确的词(在词典中存在的词)
    例如:我们想把单词spice转换成stock,可能的一个转换序列为:
    spice -> slice -> slick -> stick -> stock, 一共需要四步。
    现在给你一个词典L,L中定义了所有合法的单词,L是一个由字符串构成的列表;
    同时给你两个单词a和b,请你计算从a转换到b至少需要经过多少步。
    若无法成功转换,则输出-1.
    如:
    L = ['spice', 'slice', 'slick', 'stick', 'stock', 'ipad']
    a = 'spice', b = 'stock', 则输出4示例:输入:L = ["dip", "lip", "mad", "map", "maple", "may", "pad", "pip", "pod", "pop", "sap", "sip", "slice", "slick", "spice", "stick", "stock"]
    a = "spice"
    b = "stock"
    输出:4


    ============================================================

    来源:

    Python 爬取pythontip网站的挑战题目(附全部题目178题)

    cs