30 lines
1.2 KiB
Python
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 |