import java.util.ArrayList;
public class VisitLength {
private static ArrayList<String> list;
public int solution(String dirs) {
list = new ArrayList<>();
char[] d = dirs.toCharArray();
int x = 0, y = 0;
for (char ele : d) {
String xyxy = "";
if(ele == 'U' && isValid(x, y + 1)){
xyxy = Integer.toString(x)+Integer.toString(y) + "," + Integer.toString(x) + Integer.toString(++y);
}else if(ele == 'D' && isValid(x, y - 1)){
xyxy = Integer.toString(x)+Integer.toString(y) + "," + Integer.toString(x) + Integer.toString(--y);
}else if(ele == 'L'&& isValid(x-1, y)){
xyxy = Integer.toString(x)+Integer.toString(y) + "," + Integer.toString(--x) + Integer.toString(y);
}else if(ele == 'R'&& isValid(x+1, y)){
xyxy = Integer.toString(x)+Integer.toString(y) + "," + Integer.toString(++x) + Integer.toString(y);
}else{
continue;
}
if (isContain(xyxy)) {
list.add(xyxy);
}
}
return list.size();
}
private boolean isContain(String xyxy) {
String rotateXY = xyxy.split(",")[1] + "," + xyxy.split(",")[0];
return list.contains(xyxy) || list.contains(rotateXY) ? false : true;
}
private boolean isValid(int x, int y) {
return x <= 5 && x >= -5 && y <= 5 && y >= -5 ? true : false;
}
}