实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,都删除,删除保持原字符串排序不变
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)