Medium
Alphabet Board Path — Python
Full explanation · Time O(n) · Space O(1)
# Time: O(n)
# Space: O(1)
class Solution(object):
def alphabetBoardPath(self, target):
"""
:type target: str
:rtype: str
"""
x, y = 0, 0
result = []
for c in target:
y1, x1 = divmod(ord(c)-ord('a'), 5)
result.append('U' * max(y-y1, 0))
result.append('L' * max(x-x1, 0))
result.append('R' * max(x1-x, 0))
result.append('D' * max(y1-y, 0))
result.append('!')
x, y = x1, y1
return "".join(result)