comefrom: <doocs>2337.Move Pieces to Obtain a String_1.py
code: def canChange( start: str, target: str) -> bool:
      a = [(v, i) for i, v in enumerate(start) if v != '_']
      b = [(v, i) for i, v in enumerate(target) if v != '_']
      if len(a) != len(b):
          return False
      for (c, i), (d, j) in zip(a, b):
          if c != d:
              return False
          if c == 'L' and i < j:
              return False
          if c == 'R' and i > j:
              return False
      return True
masked: def sample_funcname ( var_0 : str , var_1 : str ) -> bool :
      var_4 = [ ( var_2 , var_3 ) for var_3 , var_2 in enumerate ( var_0 ) if var_2 != '_' ]
      var_5 = [ ( var_2 , var_3 ) for var_3 , var_2 in enumerate ( var_1 ) if var_2 != '_' ]
      if len ( var_4 ) != len ( var_5 ) :
          return False
      for ( var_6 , var_3 ) , ( var_7 , var_8 ) in zip ( var_4 , var_5 ) :
          if var_6 != var_7 :
              return False
          if var_6 == 'L' and var_3 < var_8 :
              return False
          if var_6 == 'R' and var_3 > var_8 :
              return False
      return True
  