pythonオンマシン試験ブラシ記録
9421 ワード
削除文字列の中で最も出現回数の少ない文字を実現し、複数の文字の出現回数が同じであれば、すべて削除し、元の文字列のソートを維持する.
N番目のブス数を要求する.(最小因子は2,3,5の数のみであり,ブス数(Ugly Number)と呼ぶ.例えば6、8はすべて丑数ですが、14はそうではありません.因子7が含まれているので、習慣的に私たちは1を最初の丑数と見なしています).
暴力求法、ojは試してみることができます.面接はこんな風に涼しい
ダイナミックプランニング:
input_list=list(input())
out_list=''
count=input_list.count(input_list[0])
for i in input_list:
if input_list.count(i)<count:
count=input_list.count(i)
for j in range(len(input_list)):
if input_list.count(input_list[j])>count:
out_list=out_list+input_list[j]
print(out_list)
N番目のブス数を要求する.(最小因子は2,3,5の数のみであり,ブス数(Ugly Number)と呼ぶ.例えば6、8はすべて丑数ですが、14はそうではありません.因子7が含まれているので、習慣的に私たちは1を最初の丑数と見なしています).
暴力求法、ojは試してみることができます.面接はこんな風に涼しい
def GetUglyNumber_Solution(index):
res=[]
for i in range(31):
for j in range(20):
for k in range(18):
res.append((2**i)*(3**j)*(5**k))
res.sort()
if index>=1:
return (res[index-1])
else:
return 0
ダイナミックプランニング:
# , 2、3、5,
def GetUglyNumber_Solution(index):
res=[1]
p2=p3=p5=0
while len(res)<index:
while res[p2]*2<=res[-1]:
p2+=1
while res[p3]*3<=res[-1]:
p3+=1
while res[p5]*5<=res[-1]:
p5+=1
res.append(min(res[p2]*2,res[p3]*3,res[p5]*5))
if index>=1:
return (res[index-1])
else:
return 0
GetUglyNumber_Solution(0)
GetUglyNumber_Solution(1)