Deloitte | COGNIZANT | IBM | CAPGEMINI
def solution(crypt):
words = crypt
x = list(set(''.join(words)))
if len(x) > 10:
return 0
first_letters = set(word[0] for word in words)
d= {}
ud = set()
count = [0]
def solve(word):
return int(''.join(str(d[c]) for c in word))
def dfs(index):
if index == len(x):
for word in words:
if d[word[0]] == 0:
return
if solve(words[0]) + solve(words[1]) == solve(words[2]):
count[0] += 1
return
char = x[index]
for digit in range(10):
if digit in ud:
continue
d[char] = digit
ud.add(digit)
dfs(index + 1)
ud.remove(digit)
del d[char]
dfs(0)
return count[0]
//Triology✅
q1
924 ·