給定一個二維矩陣的字符,我們必須檢查給定的字是否存在。 如給定一個二維矩陣的字符,我們必須檢查給定的字是否存在
s f t
d a h
r y o
我們可以發現「老鼠在它 (自頂向下,直,斜或anypath)..甚至在相反的順序,與至少complexiety。
我的做法是
While traversing the 2d matrix (a[][]) row wise.
If (a[i][j] == first character of given word) {
search for rest of the letters in 4 directions i.e. right, right diagonally down, down and left diagonally down.
} else if(a[i][j] == last character of the given word) {
search for remaining characters in reverse order in 4 directions i.e. left, right diagonally up, up, left diagonally up.
}
有沒有更好的方法嗎?
什麼最好的方法是在一定程度上取決於對單詞的規則,你沒有說清楚點,這個問題是可以解決的再次撥打您的功能。一個單詞的字母必須在一條直線上,還是會有任何路徑?一條路徑可以跨越自己,和/或重新使用字母嗎?此外,還有兩個不同的O()函數適用於:一個用於預處理,一個用於搜索。經過預處理後,您可能會首先尋找罕見的字母或罕見的元組 –
這裏的一個重要問題是:要搜索的單詞的最大長度是多少?這可以改變整個故事。 – Aravind