猜年龄
题目标题: 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:“我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”请你推算一下,他当时到底有多年轻。
def isDup(strs): # 蛮力法 时间复杂度O(N2)
lens = len(strs)
l = list(strs)
i = 0
while i < lens:
j = i + 1
while j < lens:
if l[i] == l[j]:
return False
j += 1
i += 1
return True
def isDup1(strs): # 空间换时间 时间复杂度O(N)
lens, I, i, flags = len(strs),list(strs), 0, [0] * 256
while i < lens:
if flags[ord(I[i])] == 0:
flags[ord(I[i])] += 1
i += 1
else:
return False
return True
for i in range(10, 30):
_i_3, i_4 = i ** 3, i ** 4
if 1000 <= _i_3 <= 9999 and 100000 <= i_4 <= 999999:
_get_list = str(_i_3) + str(i_4)
# print(list(_get_list)) # ==》输出信息
if isDup1(_get_list):
print(i)