滴滴算法笔试 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%已经很牛了,说不定后面批次就约面了
我滴滴笔试完了直接挂了
相关推荐
点赞 评论 收藏
分享
全站热榜
更多
创作者周榜
更多
正在热议
更多
# 为了去实习,我赌上了___ #
13803次浏览 156人参与
# 晒一晒你收到的礼盒 #
87365次浏览 426人参与
# uu们,春招你还来吗? #
6365次浏览 57人参与
# 2025年终总结 #
6353次浏览 125人参与
# 十二月请对我好一点 #
19078次浏览 279人参与
# 降低公积金和取消房补怎么选 #
22715次浏览 72人参与
# 父母对你找工作是助力还是阻力? #
9470次浏览 171人参与
# 实习打杂,要跑路吗 #
50364次浏览 320人参与
# 第一份工作能做外包吗? #
84577次浏览 567人参与
# 电信求职进展汇总 #
30996次浏览 166人参与
# 学历or实习经历,哪个更重要 #
200730次浏览 1059人参与
# 哪一瞬间让你觉得“这班不如不上” #
6965次浏览 113人参与
# 一人推荐一个值得做的项目 #
6411次浏览 99人参与
# 高薪高压 vs 低薪wlb,你怎么选? #
7266次浏览 88人参与
# 工作前VS工作后,你的心态变化 #
9494次浏览 130人参与
# 找工作时的取与舍 #
110077次浏览 828人参与
# 工作中出现了XX情况正常吗 #
24097次浏览 191人参与
# 市场营销人求职交流聚集地 #
162562次浏览 1212人参与
# 公司福利里最没用的一项是啥 #
4806次浏览 83人参与
# 回顾今年你干过的最“勇”的一件事 #
9911次浏览 137人参与
深信服公司福利 800人发布