对于正整数x,如果其每一位上的数字只在x中出现了一次,则称x是唯一数。如3,523,396都是唯一数,而777,996,100不是唯一数。
求[1,n]中有多少个唯一数。函数传入一个正整数n,返回[1,n]中唯一数的个数。
def UniqueNumber(n):
for i in range(n+1):
flag = False
s = str(i)
l = len(s)
for ii in range(l):#每一位数都去匹配其他位数
for iii in range (l):
if ii != iii:#不匹配自身
if s[ii] == s[iii]:
n = n-1
#print(s)
flag = True
break
if flag:
break
return n
print (UniqueNumber(100000))
若要进一步提高时间效率,可在自测环境内计算好一些值,如10k、20k、...、100k并写入程序中以备用,实际赋值时只计算超出的这部分