1、丑数
题目:把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。
python代码:
class Solution:
def getnumber(self,index):
res = []
for k in range(15):
for j in range(20):
for i in range(30):
res.append(2**i*3**j*5**k)
res.sort()
print(res)
if index:
return res[index-1]
else:
return 0
if __name__ == '__main__':
s = Solution()
n = input().strip()
res = s.getnumber(int(n))
print(res)
2、删除出现次数最小的字符
python代码:
def removechar(s):
dic = {}
for i in s:
if i in dic:
dic[i] += 1
else:
dic[i] = 1
for j in dic:
if dic[j] == min(dic.values()):
s = s.replace(j,"")
return s
if __name__ == '__main__':
s = input()
print(removechar(s))
3、最小栈
python代码:
class Solution:
def __init__(self):
self.stack = []
def push(self,x):
if not self.stack:
self.stack.append((x,x))
else:
self.stack.append((x,min(x,self.stack[-1][1])))
def pop(self):
self.stack.pop()
def top(self):
return self.stack[-1][0]
def getMin(self):
return self.stack[-1][1]
if __name__ == '__main__':
s = Solution()
n = input().strip()
for i in range(int(n)):
c1 = input().split()
if c1[0] == "push":
s.push(int(c1[1]))
elif c1[0] == "pop":
s.pop()
elif c1[0] == "top":
print(s.top())
elif c1[0] == "getMin":
print(s.getMin())