我是靠谱客的博主 留胡子故事,最近开发中收集的这篇文章主要介绍面试机试编程问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

    最近一直在学习一些相关的刷题的小技巧,无奈感觉在规定时间内完成还是感觉难度很大的,今天遇到一个题目折磨我了很长时间就是不知道所以然,明明在本地运行的很好了但是一旦提交就是AC结果为80%,不多说了,下面是题目,希望有明白的朋友可以帮我解惑一下,谢谢:

输入
输入中有多组测试数据。每组测试数据的第一行为两个整数n和m(1=<n, m=<1000),分别表示价签的数量以及小B的购买清单中所列的物品数。
第二行为空格分隔的n个正整数,表示货架上各类物品的价格,每个数的大小不超过100000。随后的m行为购买清单中物品的名称,所有物品名称
为非空的不超过32个拉丁字母构成的字符串,保证清单中不同的物品种类数不超过n,且商店有小B想要购买的所有物品。
样例输入
5 3
4 2 1 10 5
apple
orange
mango
6 5
3 5 1 6 8 1
peach
grapefruit
banana
orange
orange
输出
对每组测试数据,在单独的行中输出两个数a和b,表示购买清单上所有的物品可能需要的最小和最大费用。
样例输出
7 19
11 30
目前程序的问题是:当输入:25 40这样的数据时候出错

这个是已经提交的没有问题的别人写的代码:

#!/usr/bin/env python
#coding:utf8
while 1:
    r = raw_input()
    if r != '':
        (n,m) = (int(x) for x in r.split())
        price = [int(x) for x in raw_input().split()]
        wishlist = []
        iter = 0
        while iter <m:
            want = raw_input()
            if want != '':
                #wishlist += want.split()#使用这句话可以AC
                #wishlist.append(want.split())#使用这句话就是全部错误
                wishlist.append(str(want))#使用这句话可以AC
                iter += 1

        #print '11111111111111', wishlist
        #print list(set(wishlist))
        number = [wishlist.count(x) for x in list(set(wishlist))]
        #print '-------------',number
        price.sort() 
        number.sort(reverse = True)
        min = [x*y for x,y in zip(price,number)]
        cost_min = sum(min)
        max = [x*y for x,y in zip(price[::-1],number)]
        cost_max = sum(max)
        print (str(cost_min) + ' ' +str(cost_max))

下面是我的:

#!/usr/bin/env python
#coding:utf-8
#def test():
'''
输入
输入中有多组测试数据。每组测试数据的第一行为两个整数n和m(1=<n, m=<1000),分别表示价签的数量以及小B的购买清单中所列的物品数。
第二行为空格分隔的n个正整数,表示货架上各类物品的价格,每个数的大小不超过100000。随后的m行为购买清单中物品的名称,所有物品名称
为非空的不超过32个拉丁字母构成的字符串,保证清单中不同的物品种类数不超过n,且商店有小B想要购买的所有物品。
样例输入
5 3
4 2 1 10 5
apple
orange
mango
6 5
3 5 1 6 8 1
peach
grapefruit
banana
orange
orange
输出
对每组测试数据,在单独的行中输出两个数a和b,表示购买清单上所有的物品可能需要的最小和最大费用。
样例输出
7 19
11 30
目前程序的问题是:当输入:25 40这样的数据时候出错
'''
while 1:
    string=raw_input()
    #while not string:
    if string != '':#出错的一直是这里,我用的while应该是if
        (n,m)=(int(x) for x in string.split())
        #price_list=[]
        #for i in range(n):
        price_list=[int(x) for x in raw_input().split()]
        increase_list=sorted(price_list)
        decrease_list=sorted(price_list, reverse=True)
        # sorted(student_tuples, key=itemgetter(2), reverse=True)
        product_dict={}
        for j in range(m):
            thing=raw_input()
            if thing not in product_dict:
                product_dict[thing]=1
            else:
                product_dict[thing]+=1
        product_decrease_dict = sorted(product_dict.items(), key=lambda e:e[1], 
            reverse=True) #这样返回的是元组类似于[('apple',1),('banana',2)]
        # print '-----------------------------------'
        # print product_decrease_dict
        #i=0
        num_list=[]
        for i in range(len(product_decrease_dict)):
            num_list.append(product_decrease_dict[i][1])
        min_price = [x*y for x,y in zip(increase_list,num_list)]
        cost_min = sum(min_price)
        max_price = [x*y for x,y in zip(decrease_list,num_list)]
        cost_max = sum(max_price)
        print (str(cost_min) + ' ' +str(cost_max))


        # max_price=0
        # mix_price=0
        # # for key in product_decrease_dict:
        # for k in range(len(decrease_list)):
        #     if k<len(product_decrease_dict):
        #     # max_price+=int(product_decrease_dict[key]*decrease_list[i])
        #     # mix_price+=int(product_decrease_dict[key]*increase_list[i])
        #         max_price+=int(product_decrease_dict[k][1]*decrease_list[k])
        #         mix_price+=int(product_decrease_dict[k][1]*increase_list[k])
        #     #i+=1
        # #print mix_price, max_price
        # print (str(mix_price) + ' ' +str(max_price))

以及

while 1:
    r = raw_input()
    if r != '':
        (n,m) = (int(x) for x in r.split())
        price_list = [int(x) for x in raw_input().split()]
        product_list=[]
        for i in range(m):
            thing=raw_input()
            if thing != '':
                product_list.append(str(thing))
                #product_list+=thing

        #print '11111111111111111', product_list
        number = [product_list.count(x) for x in list(set(product_list))]
        #print 'number is:', number
        increase_list=sorted(price_list)
        decrease_list=sorted(price_list, reverse=True)
        number.sort(reverse = True)
        min = [x*y for x,y in zip(increase_list,number)]
        cost_min = sum(min)
        max = [x*y for x,y in zip(decrease_list,number)]
        cost_max = sum(max)
        print (str(cost_min) + ' ' +str(cost_max))
除了那一句话改了以后原始答案会有变化之外再也没有别的东西了,实在是不理解,下面是提交后测试给出的错误提示:

说明:
所有测试数据正确率为80.0000011920929%!
可以尝试再次完善代码,并调试,争取全部AC通过

错误数据:
该数据运行时间:457ms
该数据占用最大内存:21408kb
该数据运行结果:答案错误 ( Wrong Answer(WA) )
输入:
1 100
16
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
ytdujscgbiyesbufsgj
97 100
28 76 62 10 23 39 77 11 59 80 64 4 90 45 45 95 41 29 86 9 17 71 84 19 22 75 32 25 19 75 22 3 87 24 88 23 98 83 70 55 31 67 24 32 2 49 37 44 59 88 75 97 33 34 80 26 82 68 48 91 60 18 94 4 73 87 17 91 88 44 87 25 83 75 97 4 98 4 54 95 54 31 78 34 27 86 72 80 64 7 11 71 52 93 50 59 74
ds
qpzdtvfm
fnvs
mu
tvfmubuzivszczfnvsndseqbiy
bhrxuqyyupdkmudx
dse
pzdtvfmubuzivs
uobhrxuqyyupdkmudxrqpzdtvfmubuz
ds
hrxuqyyupdkmudxrqpzdtvfmubu
mudxrqpzdtvfmubuzivszczfnvsndseq
tv
uobhrxuqyyupdkm
dkmudxr
ds
qpzdtvfm
fnvs
mu
tvfmubuzivszczfnvsndseqbiy
bhrxuqyyupdkmudx
dse
pzdtvfmubuzivs
uobhrxuqyyupdkmudxrqpzdtvfmubuz
ds
hrxuqyyupdkmudxrqpzdtvfmubu
mudxrqpzdtvfmubuzivszczfnvsndseq
tv
uobhrxuqyyupdkm
dkmudxr
ds
qpzdtvfm
fnvs
mu
tvfmubuzivszczfnvsndseqbiy
bhrxuqyyupdkmudx
dse
pzdtvfmubuzivs
uobhrxuqyyupdkmudxrqpzdtvfmubuz
ds
hrxuqyyupdkmudxrqpzdtvfmubu
mudxrqpzdtvfmubuzivszczfnvsndseq
tv
uobhrxuqyyupdkm
dkmudxr
ds
qpzdtvfm
fnvs
mu
tvfmubuzivszczfnvsndseqbiy
bhrxuqyyupdkmudx

dse
pzdtvfmubuzivs
uobhrxuqyyupdkmudxrqpzdtvfmubuz
ds
hrxuqyyupdkmudxrqpzdtvfmubu
mudxrqpzdtvfmubuzivszczfnvsndseq
tv
uobhrxuqyyupdkm
dkmudxr
ds
qpzdtvfm
fnvs
mu
tvfmubuzivszczfnvsndseqbiy
bhrxuqyyupdkmudx
dse
pzdtvfmubuzivs
uobhrxuqyyupdkmudxrqpzdtvfmubuz
ds
hrxuqyyupdkmudxrqpzdtvfmubu
mudxrqpzdtvfmubuzivszczfnvsndseq
tv
uobhrxuqyyupdkm
dkmudxr
ds
qpzdtvfm
fnvs
mu
tvfmubuzivszczfnvsndseqbiy
bhrxuqyyupdkmudx
dse
pzdtvfmubuzivs
uobhrxuqyyupdkmudxrqpzdtvfmubuz
ds
hrxuqyyupdkmudxrqpzdtvfmubu
mudxrqpzdtvfmubuzivszczfnvsndseq
tv
uobhrxuqyyupdkm
dkmudxr
ds
qpzdtvfm
fnvs
mu
tvfmubuzivszczfnvsndseqbiy
bhrxuqyyupdkmudx
dse
pzdtvfmubuzivs
uobhrxuqyyupdkmudxrqpzdtvfmubuz
ds
98 74
98 89 46 85 99 29 23 30 58 93 9 20 7 20 93 67 8 65 86 23 89 60 70 66 89 16 44 30 99 35 36 37 48 87 26 3 13 59 32 63 53 23 22 15 54 25 39 98 9 74 66 27 57 44 96 8 24 22 61 81 88 53 31 15 77 14 55 22 40 15 59 47 53 54 88 26 99 10 21 81 59 32 49 37 40 1 26 47 37 71 27 7 89 81 39 16 33 93
vnmb
oxpgxuzczu
olkxl
tcvnmbfjkdc
w
gnoolkxloxpgxuz
xuzczuow
dcljqfjgnoolkxloxpgxuz
z
xuzczuow
bfjkdc
fjgnool
dame
cl
amektc
dcljqfjgnoolkxloxpgxuz
gnoolkxloxpgxuz
kdcljqfjg
kdcljqfjg
mbfjkdcl
cl
vnmb
oxpgxuzczu
olkxl
tcvnmbfjkdc
w
gnoolkxloxpgxuz
xuzczuow
dcljqfjgnoolkxloxpgxuz
z
xuzczuow
bfjkdc
fjgnool
dame
cl
amektc
dcljqfjgnoolkxloxpgxuz
gnoolkxloxpgxuz
kdcljqfjg
kdcljqfjg
mbfjkdcl
cl
vnmb
oxpgxuzczu
olkxl
tcvnmbfjkdc
w
gnoolkxloxpgxuz
xuzczuow
dcljqfjgnoolkxloxpgxuz
z
xuzczuow
bfjkdc
fjgnool
dame
cl
amektc
dcljqfjgnoolkxloxpgxuz
gnoolkxloxpgxuz
kdcljqfjg
kdcljqfjg
mbfjkdcl
cl
vnmb
oxpgxuzczu
olkxl
tcvnmbfjkdc
w
gnoolkxloxpgxuz
xuzczuow
dcljqfjgnoolkxloxpgxuz
z
xuzczuow
bfjkdc
75 88
48 76 14 1 65 10 90 91 1 18 1 73 8 54 80 6 3 69 83 20 95 87 35 47 78 99 65 60 57 64 47 13 81 33 82 26 36 76 54 99 84 22 57 35 54 61 58 21 29 7 82 27 74 7 71 22 87 38 25 52 92 52 34 93 66 20 98 44 91 10 10 69 96 64 62
t
ge
xmspqpedlm
dlmd
pedlmdb
igeohlmqtldrtukijoptmesev
mq
mdbi
rtuki
qped
qtldrtukijoptmeseveq
rtukijoptmeseveqxmspq
ptmeseveqx
eveqx
ptmeseveqx
exftm
mqtldrtukijoptm
ukijopt
edlmd
lmdb
xmspqpe
exftm
eveqx
ohlmqtldrtukijoptme
hlmqt
o
ukijopt
edlmd
qpedl
rtu
t
ge
xmspqpedlm
dlmd
pedlmdb
igeohlmqtldrtukijoptmesev
mq
mdbi
rtuki
qped
qtldrtukijoptmeseveq
rtukijoptmeseveqxmspq
ptmeseveqx
eveqx
ptmeseveqx
exftm
mqtldrtukijoptm
ukijopt
edlmd
lmdb
xmspqpe
exftm
eveqx
ohlmqtldrtukijoptme
hlmqt
o
ukijopt
edlmd
qpedl
rtu
t
ge
xmspqpedlm
dlmd
pedlmdb
igeohlmqtldrtukijoptmesev
mq
mdbi
rtuki
qped
qtldrtukijoptmeseveq
rtukijoptmeseveqxmspq
ptmeseveqx
eveqx
ptmeseveqx
exftm
mqtldrtukijoptm
ukijopt
edlmd
lmdb
xmspqpe
exftm
eveqx
ohlmqtldrtukijoptme
hlmqt
o
ukijopt
edlmd
33 99
95 16 21 51 44 74 61 42 85 23 80 54 51 55 13 40 67 99 68 28 26 81 95 14 8 28 74 92 96 1 85 29 53
aonkrjp
dlpdcuh
krj
pucybycdnnrynjmvrdlpd
aonkrjp
cuhmlp
ywdfqaonkrjpucybycdnnr
hml
aonkrjp
aonkrjp
hml
hml
pucybycdnnrynjmvrdlpd
jp
xsgixx
xdywdfqaonkrjpucybyc
cuhmlp
krj
dfqa
dfqa
nrynjmvrdlpd
ywdfqaonkrjpucybycdnnr
xdywdfqaonkrjp
lpdcuhml
kxcxxsgixxdywdfqaonkrjpucyb
cuhmlp
xdywdfqaonkrjp
ixxdywdf
nrynjmvrdlpd
ywdfqaonkrjpucybycdnnr
lpdcuhml
dfqaonkrjpucyb
dfqaonkrjpucy
aonkrjp
dlpdcuh
krj
pucybycdnnrynjmvrdlpd
aonkrjp
cuhmlp
ywdfqaonkrjpucybycdnnr
hml
aonkrjp
aonkrjp
hml
hml
pucybycdnnrynjmvrdlpd
jp
xsgixx
xdywdfqaonkrjpucybyc
cuhmlp
krj
dfqa
dfqa
nrynjmvrdlpd
ywdfqaonkrjpucybycdnnr
xdywdfqaonkrjp
lpdcuhml
kxcxxsgixxdywdfqaonkrjpucyb
cuhmlp
xdywdfqaonkrjp
ixxdywdf
nrynjmvrdlpd
ywdfqaonkrjpucybycdnnr
lpdcuhml
dfqaonkrjpucyb
dfqaonkrjpucy
aonkrjp
dlpdcuh
krj
pucybycdnnrynjmvrdlpd
aonkrjp
cuhmlp
ywdfqaonkrjpucybycdnnr
hml
aonkrjp
aonkrjp
hml
hml
pucybycdnnrynjmvrdlpd
jp
xsgixx
xdywdfqaonkrjpucybyc
cuhmlp
krj
dfqa
dfqa
nrynjmvrdlpd
ywdfqaonkrjpucybycdnnr
xdywdfqaonkrjp
lpdcuhml
kxcxxsgixxdywdfqaonkrjpucyb
cuhmlp
xdywdfqaonkrjp
ixxdywdf
nrynjmvrdlpd
ywdfqaonkrjpucybycdnnr
lpdcuhml
dfqaonkrjpucyb
dfqaonkrjpucy

您的输出:
1600 1600
785 9264



最后

以上就是留胡子故事为你收集整理的面试机试编程问题的全部内容,希望文章能够帮你解决面试机试编程问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部