pub fn alphabet_board_path(target: &str) -> String {
let mut moves: Vec<String> = Vec::new();
let row: usize = 0;
let column: usize = 0;
for ch in target.chars() {
let idx = ch as u8 - b'a';
let target_row = idx / 5;
let target_column = idx % 5;
if usize::from(target_row) < row {
moves.push("U".repeat(row - target_row as usize));
}
if usize::from(target_column) < column {
moves.push("L".repeat(column - target_column as usize));
}
if usize::from(target_row) > row {
moves.push("D".repeat(target_row as usize - row));
}
if usize::from(target_column) > column {
moves.push("R".repeat(target_column as usize - column));
}
moves.push("!".to_string());
}
return moves.join("");
}