python/CodeChallenge_11.py

30 lines
1.2 KiB
Python

'''
Bill keeps his most treasured savings in a home safe with a combination lock. The combination lock is
represented by n rotating disks with digits from 0 to 9 written on them. Bill has to turn some disks so
that the combination of digits on the disks forms a secret combination. In one move, he can rotate one
disk one digit forwards or backwards. In particular, in one move he can go from digit 0 to digit 9 and
vice versa. What minimum number of actions does he need for that?
Given an integer original and an integer of final code combination target, return an integer of the minimum
number of moves Bill needs to open the lock
Example 1
Input:
original = 82195; target = 64723
Output:
13
'''
class Solution(object):
def solve(self, original:int, target:int) -> int:
print(f"original: {original}, target: {target}")
original_str = f"{original}"
target_str = f"{target}"
turns = 0
for i in range(len(original_str)):
diff = abs(int(original_str[i]) - int(target_str[i]))
turns += min(diff, 10 - diff)
return turns
s = Solution()
print(s.solve(82195, 64723))
print(s.solve(12345, 98765)) # Output: 1