Phó GOAT
Senior Member
Java:
class Solution {
class Piece {
public Character c;
public Integer i;
public Piece(Character c, Integer i) {
this.c = c;
this.i = i;
}
}
public boolean canChange(String start, String target) {
int n = target.length();
Queue<Piece> sQueue = new ArrayDeque();
Queue<Piece> tQueue = new ArrayDeque();
for (int i = 0; i < n; i++) {
if (start.charAt(i) != '_') {
sQueue.offer(new Piece(start.charAt(i), i));
}
if (target.charAt(i) != '_') {
tQueue.offer(new Piece(target.charAt(i), i));
}
}
if (tQueue.size() != sQueue.size()) return false;
while (!sQueue.isEmpty()) {
Piece s = sQueue.poll();
Piece t = tQueue.poll();
if (s.c != t.c) return false;
if (s.c == 'L' && s.i < t.i) return false;
if (s.c == 'R' && s.i > t.i) return false;
}
return true;
}
}





