Leetcode # 2337. Move Pieces to Obtain a String

Problem

https://leetcode.com/problems/move-pieces-to-obtain-a-string

Solution

Time Complexity: O(len(start))
Space Complexity: O(len(start))
(The input and output generally do not count towards the space complexity.)

class Solution:
  def canChange(self, start: str, target: str) -> bool:
    lr_in_start, lr_in_target = [], []
    for i in range(len(start)):
      if (c := start[i]) != "_":
        lr_in_start.append([c, i])
      if (c := target[i]) != "_":
        lr_in_target.append([c, i])
    print(lr_in_start, lr_in_target)
    if len(lr_in_start) != len(lr_in_target): return False

    for i in range(len(lr_in_start)):
      if (c1 := lr_in_start[i][0]) != (c2 := lr_in_target[i][0]): return False

      p1 =  lr_in_start[i][1]
      p2 = lr_in_target[i][1]
      if (p1 < p2 if c1 == "L" else p1 > p2): return False

    return True

 

Last Updated on 2024/12/06 by A1go

目錄
Bitnami