字串系列 word search

2021-07-23 17:01:49 字數 1073 閱讀 1990

題目

已知:乙個二維字元矩陣,乙個單詞;

輸出:該單詞是否可以從二維矩陣中拼接出來?拼接規則:從矩陣的某一行的某個字母開始,持續向臨近的字元擴充套件(向上,向下,向左,向右),直至拼接出該單詞。若可以拼出,則輸出false,若拼不出,則輸出false;

例如:

【a,b,c,d,e

e,f,g,h,u

a,b,s,d,f

】 單詞為abcgh,輸出true;

單詞為fghdsb,輸出true;

單詞為efgu,輸出false;

思路 dfs

用visited儲存當前dfs路徑;

對於矩陣每個點作為起始點dfs,每個點,移動有4個可能(4個鄰居),一次dfs需要移動word.length次;

實現:

對於visited,實現方式多種:

1)boolean

2)hashset 將二維轉換為一惟;

public

static

boolean

exist(char board,string word)}}

return

false;

}//dfs,遞迴,需要記錄擴充套件次數;每個dfs,需要擴充套件word.length次後結束;

private

static

boolean

haspath(int pos, int x, int y, string word,char board, hashsetvisited)

else

}else;

int y=;

for(int i=0;i<4;i++)}}

visited.remove(x+board[0].length+y);

return

false;

}else}}

//判斷位置是否有效

private

static

boolean

isvalid(int newx, int newy, char board) else

}

字串「最」系列

最近練手,整理了乙個 最 系列的主題,這些題目有點繞,個別的還有別名 詳見博文 混在一塊比較亂,就索性放在一起做了個整理,區別的時候要注意子串行與子串的不同,前者不要求連續,後者要求連續 由於大部分跟dp有關,而且一些題目還可以漸進尋求多種解法,可以用來做不錯的練手。下面是這些問題的博文目錄 1 最...

字串系列 SA

高一還不會sa就退役吧 uoj 35.字尾排序 這是一道模板題。讀入乙個長度為 n nn 的由小寫英文本母組成的字串,請把這個字串的所有非空字尾按字典序從小到大排序,然後按順序輸出字尾的第乙個字元在原串中的位置。位置編號為 1 11 到 nnn。除此之外為了進一步證明你確實有給字尾排序的超能力,請另...

字串dp系列

647.回文子串 給定乙個字串,你的任務是計算這個字串中有多少個回文子串。具有不同開始位置或結束位置的子串,即使是由相同的字元組成,也會被計為是不同的子串。示例 1 輸入 abc 輸出 3 解釋 三個回文子串 a b c 示例 2 輸入 aaa 輸出 6 說明 6個回文子串 a a a aa aa ...