滴滴算法笔试 0927
鼠鼠做的 91 100
不知道为什么第一题有一个用例过不去,没啥好思路就暴力做了,佬们可以帮忙看看代码吗?
第一题:波浪数,给定进制【a,b】和十进制【l,r】,以及波浪数【k】,求波浪数满足条件的十进制数。波浪数定义为两个不同的数交替构成的,如 1010, 1A1, ABA;请在【a,b】进制中找到这样的十进制数,且该十进制数必须在区间【l,r】中
#####################################################################
a,b,l,r,wave=map(int,input().split())
mapList={chr(ord("A")+i):10+i for i in range(26)}
for i in range(10):
mapList[str(i)]=i
numList={10+i:chr(ord("A")+i) for i in range(26)}
for i in range(10):
numList[i]=str(i)
def getTenTrans(v,k):
# 对应的元素
ans=0
v=str(v)[::-1]
for i in range(len(v)):
ans+=k**i*mapList[v[i]]
return ans
ansList={}
# 先找到需要处理的进制区间内所有对应的元素
for k in range(a,b+1):
# 上下限
for i in range(1,k):
for j in range(k):
if i == j: continue
q=numList[i]
p=numList[j]
temp=f"{q}"
idx=2
while getTenTrans(temp,k)<l:
temp+=p if idx%2==0 else q
idx+=1
v=getTenTrans(temp,k)
while v<=r:
if v not in ansList:
ansList[v] = 1
else:
ansList[v] += 1
temp+=p if idx%2==0 else q
idx+=1
v=getTenTrans(temp,k)
res=[]
for k,v in ansList.items():
if v==wave:
res.append(k)
res.sort()
for i in res:
print(i)
####################################################################
不知道为什么第一题有一个用例过不去,没啥好思路就暴力做了,佬们可以帮忙看看代码吗?
第一题:波浪数,给定进制【a,b】和十进制【l,r】,以及波浪数【k】,求波浪数满足条件的十进制数。波浪数定义为两个不同的数交替构成的,如 1010, 1A1, ABA;请在【a,b】进制中找到这样的十进制数,且该十进制数必须在区间【l,r】中
#####################################################################
a,b,l,r,wave=map(int,input().split())
mapList={chr(ord("A")+i):10+i for i in range(26)}
for i in range(10):
mapList[str(i)]=i
numList={10+i:chr(ord("A")+i) for i in range(26)}
for i in range(10):
numList[i]=str(i)
def getTenTrans(v,k):
# 对应的元素
ans=0
v=str(v)[::-1]
for i in range(len(v)):
ans+=k**i*mapList[v[i]]
return ans
ansList={}
# 先找到需要处理的进制区间内所有对应的元素
for k in range(a,b+1):
# 上下限
for i in range(1,k):
for j in range(k):
if i == j: continue
q=numList[i]
p=numList[j]
temp=f"{q}"
idx=2
while getTenTrans(temp,k)<l:
temp+=p if idx%2==0 else q
idx+=1
v=getTenTrans(temp,k)
while v<=r:
if v not in ansList:
ansList[v] = 1
else:
ansList[v] += 1
temp+=p if idx%2==0 else q
idx+=1
v=getTenTrans(temp,k)
res=[]
for k,v in ansList.items():
if v==wave:
res.append(k)
res.sort()
for i in res:
print(i)
####################################################################
全部评论
楼主思路大方向没毛病吧
差一个用例过不去,感觉像吃薯片最后一片掏不出来
while getTenTrans(temp,k) 点赞 回复 分享 发布于 09-28 11:57 江西
91%已经很牛了,说不定后面批次就约面了
我滴滴笔试完了直接挂了
相关推荐


点赞 评论 收藏
分享
全站热榜
更多
创作者周榜
更多
正在热议
更多
# 国庆放假,你还会主动学习吗? #
11352次浏览 58人参与
# 材料专业可以靠半导体脱坑吗? #
22671次浏览 125人参与
# 携程求职进展汇总 #
635323次浏览 4646人参与
# AI创作大赛:牛可乐的国庆之旅 #
11641次浏览 184人参与
# 五一假期,你打算“躺”还是“卷”? #
80074次浏览 715人参与
# 牛友的国庆旅行碎片 #
6022次浏览 51人参与
# 深信服秋招来了 #
270205次浏览 2903人参与
# 国庆假期,给大脑放个假 #
949次浏览 17人参与
# 2025,我想...... #
72632次浏览 606人参与
# 通信硬件人社招/春招/实习投递现状 #
29032次浏览 942人参与
# 长江存储求职进展汇总 #
56887次浏览 227人参与
# 国庆放假,你还会投简历吗? #
8101次浏览 86人参与
# 你小时候最想从事什么职业 #
120397次浏览 1878人参与
# 距离放假还有_天,我已经…… #
14276次浏览 173人参与
# 大学四年该怎么过,才不算浪费时间? #
11734次浏览 70人参与
# 你最满意的offer薪资是哪家公司? #
38265次浏览 190人参与
# 你秋招想去哪些公司 #
62549次浏览 1693人参与
# 查收我的offer竞争力报告 #
214224次浏览 1388人参与
# 工作一周年分享 #
42017次浏览 214人参与
# 你认为哪个岗位找工作最卷 #
50827次浏览 226人参与
# 你大学考了哪些证,有用吗? #
33028次浏览 212人参与
# 创作灵感 #
104375次浏览 1490人参与