滴滴算法笔试 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) 点赞 回复 分享 发布于 2025-09-28 11:57 江西
91%已经很牛了,说不定后面批次就约面了
我滴滴笔试完了直接挂了
相关推荐
昨天 12:15
哈尔滨工业大学(深圳) 安卓 点赞 评论 收藏
分享
全站热榜
更多
创作者周榜
更多
正在热议
更多
# 从投递到OC,你用了多久 #
4451次浏览 36人参与
# 总结:哪家公司最喜欢泡池子 #
169400次浏览 603人参与
# 厦门银行科技岗值不值得投 #
19300次浏览 427人参与
# 我的求职进度条 #
994013次浏览 6583人参与
# 哪些公司面试还在问八股? #
1046次浏览 21人参与
# 哪一刻你突然觉得实习“有点值了” #
3020次浏览 44人参与
# HR面都在聊什么? #
1111次浏览 21人参与
# 实习教会我的事 #
73913次浏览 511人参与
# 一人一道大厂面试题 #
129295次浏览 1321人参与
# 生物制药/化工校招攻略 #
85750次浏览 347人参与
# 实习生如何通过转正 #
136194次浏览 1488人参与
# 哪些公司一直卡在简历筛选 #
108142次浏览 374人参与
# 大厂无回复,继续等待还是奔赴小厂 #
350527次浏览 2009人参与
# 实习生活中那些难忘的瞬间 #
333350次浏览 3399人参与
# 现在还是0offer,延毕还是备考 #
1364781次浏览 7953人参与
# 我想象的实习vs现实的实习 #
333227次浏览 2298人参与
# 有深度的简历长什么样? #
54216次浏览 732人参与
# 反问环节如何提问 #
138681次浏览 2734人参与
# 夸夸我的求职搭子 #
261953次浏览 1983人参与
# 入职第一天,你准备什么时候下班 #
118566次浏览 519人参与
# 拿到offer之后,可以做些什么 #
105868次浏览 514人参与
