Python random穷举法穷举法leetcode题库题库:17. 电话号码的字母组电话号码的字母组
合,别样开辟思路,大佬会不会喷咱合,别样开辟思路,大佬会不会喷咱^_^
Python random穷举法leetcode题库:17. 电话号码的字母组合,别样开辟思路,大佬会不会喷咱 ^ _ ^
见下图:先说下leetcode17题:
电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
示例:
输入:“23”
输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].
说明:
尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。
下面直接上代码吧:写的比较粗糙,我直接随便写了个例子号码:s = ‘347892732’,算了下有46656个组合,开干。。。
import random
import time
dict = {'2':'abc','3':'def','4':'ghi','5':'jkl','6':'mno','7':'pqrs','8':'tuv','9':'wxyz'}
s = '347892732'
k = [] start_time = time.time()
for i in s:
k.append(dict[i]) #总共组合数 46656个
print(k)
count=0
l = [] while count<700000:
s = [] for i in k:
t = random.choice(i)
s.append(t)
l.append(s)
count += 1
# print(l)
print(len(l))
m = [] for i in l:
m1 =''.join(i)
# print(m1)
m.append(m1)
# print(m)
print(len(m))
print(set(m))
print(len(set(m)))
count_time= time.time()-start_time
print(count_time)
评论0
最新资源