35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
class Solution(object):
|
|
def isSolvable(self, words, result):
|
|
"""
|
|
:type words: List[str]
|
|
:type result: str
|
|
:rtype: bool
|
|
"""
|
|
self.encode = {}
|
|
self.avail_keys = [1,2,3,4,5,6,7,8,9,10]
|
|
|
|
for c in reversed(result):
|
|
for i in range(10):
|
|
self.encode[c]=i
|
|
|
|
for word in words:
|
|
for l in word:
|
|
# print(f"{i} and {l}")
|
|
return True
|
|
|
|
def is_letter_solvable(self, letters, result: int):
|
|
# can the letters add up to the result?
|
|
if len(letters) == 1:
|
|
if result in self.avail_keys:
|
|
self.encode[letters[0]] = result
|
|
self.avail_keys.remove(result)
|
|
return True
|
|
else: return False
|
|
|
|
for c in letters:
|
|
if c in self.encode:
|
|
i = self.encode[c]
|
|
return self.is_letter_solvable(letters[1:], result - i)
|
|
else:
|
|
for i in self.avail_keys:
|
|
pass |