pythonオンマシン試験ブラシ記録


削除文字列の中で最も出現回数の少ない文字を実現し、複数の文字の出現回数が同じであれば、すべて削除し、元の文字列のソートを維持する.
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)