滴滴算法笔试 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) 点赞 回复 分享 发布于 昨天 11:57 江西
91%已经很牛了,说不定后面批次就约面了
我滴滴笔试完了直接挂了
相关推荐


点赞 评论 收藏
分享
09-17 18:05
河南大学 嵌入式工程师 点赞 评论 收藏
分享
全站热榜
更多
创作者周榜
更多
正在热议
更多
# 哪些公司真双非友好? #
28937次浏览 133人参与
# 4399求职进展汇总 #
32918次浏览 189人参与
# 携程求职进展汇总 #
625699次浏览 4606人参与
# 牛友们的论文几号送审 #
55995次浏览 817人参与
# 秋招感动瞬间 #
34113次浏览 317人参与
# 技术转行的心路历程 #
61885次浏览 693人参与
# 思朗科技求职进展汇总 #
61753次浏览 433人参与
# 应届生第一份工作最好去大厂吗? #
32801次浏览 577人参与
# 今年秋招还有金九银十吗 #
2909次浏览 27人参与
# 你们公司哪个部门最累? #
32188次浏览 233人参与
# 工作后会跟朋友渐行渐远吗 #
40916次浏览 302人参与
# 阿里云工作体验 #
25805次浏览 100人参与
# 大厂面试初体验 #
56525次浏览 275人参与
# 德州仪器求职进展汇总 #
11618次浏览 162人参与
# 贝壳求职进展汇总 #
30915次浏览 174人参与
# 机械人的薪资开到多少,才适合去? #
128670次浏览 473人参与
# 你会为了工作牺牲生活吗? #
47357次浏览 376人参与
# 签约有哪些注意事项 #
47668次浏览 273人参与
# 机械人,你拿到几个offer啦 #
48250次浏览 355人参与
# 毕业季,给职场新人一些建议 #
122848次浏览 2038人参与
# 海尔求职进展汇总 #
10653次浏览 37人参与
# 找工作时的取与舍 #
98310次浏览 755人参与