Leetcode 1138 字母板上的路徑

2021-09-26 11:02:51 字數 1036 閱讀 2380

我們從一塊字母板上的位置 (0, 0) 出發,該座標對應的字元為 board[0][0]。

在本題裡,字母板為board = ["abcde", "fghij", "klmno", "pqrst", "uvwxy", "z"].

我們可以按下面的指令規則行動:

如果方格存在,'u' 意味著將我們的位置上移一行;

如果方格存在,'d' 意味著將我們的位置下移一行;

如果方格存在,'l' 意味著將我們的位置左移一列;

如果方格存在,'r' 意味著將我們的位置右移一列;

'!' 會把在我們當前位置 (r, c) 的字元 board[r][c] 新增到答案中。

返回指令序列,用最小的行動次數讓答案和目標 target 相同。你可以返回任何達成目標的路徑。

示例 1:

輸入:target = "leet"

輸出:"ddr!uurrr!!ddd!"

示例 2:

輸入:target = "code"

輸出:"rr!ddrr!uul!r!"

1 <= target.length <= 100

target 僅含有小寫英文本母。

笨方法,bfs

class solution ;

vectordy = ;

string bfs(vector> graph,int &i,int &j,char it)

else

i = ni;j = nj;

return tans+="!";

}graph[ni][nj] = ' ';}}

}}

return tans;

}string alphabetboardpath(string target) ,,,,,};

string ans = "";

int i = 0,j = 0;

for(auto it : target)

ans += bfs(graph,i,j,it);

}return ans;

}};

leetcode1087 字母切換

我們用乙個特殊的字串 s 來表示乙份單詞列表,之所以能展開成為乙個列表,是因為這個字串 s 中存在乙個叫做 選項 的概念 單詞中的每個字母可能只有乙個選項或存在多個備選項。如果只有乙個選項,那麼該字母按原樣表示。如果存在多個選項,就會以花括號包裹來表示這些選項 使它們與其他字母分隔開 例如 表示 a...

LeetCode(242 字母異構)

如題 看上去很簡單,但是有點蛋疼。直接的做法是什麼,遍歷s,對應的取每一位字元然後對應從t中刪除相同的字元,直觀的實現 public static boolean isanagram string s,string t for int i 0 i但是,很蛋疼的是,時間超限了 另尋它法,s和t擁有相同...

leetcode 49 字母異位

給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。通過次數80,334提交次數129,632 思路 還是...