滴滴算法笔试 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%已经很牛了,说不定后面批次就约面了
我滴滴笔试完了直接挂了
相关推荐
全站热榜
更多
创作者周榜
更多
正在热议
更多
# 赚钱的意义在这一刻具象化 #
1975次浏览 56人参与
# 哪些瞬间让你真切感受到了工作的乐趣 #
23003次浏览 98人参与
# 今年春招是金一银二嘛? #
2713次浏览 43人参与
# 你的第一家实习公司是什么档次? #
2048次浏览 37人参与
# 1月小结:你过的开心吗? #
724次浏览 27人参与
# AI求职实录 #
1311次浏览 39人参与
# 为什么有人零实习也能进大厂? #
2445次浏览 62人参与
# 抛开难度不谈,你最想去哪家公司? #
1554次浏览 52人参与
# AI时代的工作 VS 传统时代的工作,有哪些不同? #
4913次浏览 128人参与
# 工作后会跟朋友渐行渐远吗 #
57603次浏览 411人参与
# 你的landing期是如何度过的? #
4918次浏览 82人参与
# 汇川技术求职进展汇总 #
177558次浏览 1055人参与
# 除了Java,最推荐学什么技术? #
3608次浏览 106人参与
# 当你问AI“你会取代我的工作吗”,它说_? #
1773次浏览 73人参与
# 选offer应该考虑哪些因素 #
139755次浏览 983人参与
# 你觉得什么岗位会被AI替代 #
35950次浏览 246人参与
# 非技术岗简历怎么写 #
283972次浏览 3185人参与
# 简历当中有水分算不算造假? #
157689次浏览 2261人参与
# 我是XXX,请攻击我最薄弱的地方 #
55392次浏览 385人参与
# 你上一次加班是什么时候? #
128779次浏览 736人参与
