274 最長字串鏈

2021-10-02 16:52:48 字數 1163 閱讀 4112

題目描述:

給出乙個單詞列表,其中每個單詞都由小寫英文本母組成。

如果我們可以在 word1 的任何地方新增乙個字母使其變成 word2,那麼我們認為 word1 是 word2 的前身。例如,「abc」 是 「abac」 的前身。

詞鏈是單詞 [word_1, word_2, …, word_k] 組成的序列,k >= 1,其中 word_1 是 word_2 的前身,word_2 是 word_3 的前身,依此類推。

從給定單詞列表 words 中選擇單詞組成詞鏈,返回詞鏈的最長可能長度。

示例:輸入:[「a」,「b」,「ba」,「bca」,「bda」,「bdca」]

輸出:4

解釋:最長單詞鏈之一為 「a」,「ba」,「bda」,「bdca」。

1 <= words.length <= 1000

1 <= words[i].length <= 16

words[i] 僅由小寫英文本母組成。

先將字串按照長度進行排序,然後我們使用dp,dp[i]表示的是string[i]的最長字串鏈,那麼初始化dp為1,然後我們使用ise(s1,s)來判斷s1是否能夠加乙個字元組成s

看**

class

solution

collections

.sort

(list,(

o1,o2)

->o1.

length()

-o2.length()

);intdp

=new

int[

list.size()];

arrays

.fill(dp

,1);

for(

inti=0

;i<

list

.size()

;i++

)for

(intj=

0;jlength;j

++)}

}}return

result;}

public

boolean

ise(

strings1,

strings2)

}for

(inti:

tem)

}return

true;}

}

動態規劃 1048 最長字串鏈

給出乙個單詞列表,其中每個單詞都由小寫英文本母組成。如果我們可以在 word1 的任何地方新增乙個字母使其變成 word2,那麼我們認為 word1 是 word2 的前身。例如,abc 是 abac 的前身。詞鏈是單詞 word 1,word 2,word k 組成的序列,k 1,其中 word ...

sgu274 Spam filter 字串模擬

題目大意 乙個合法的em ail 位址應該滿足如下條件 1.le tter 為大寫或小寫字母 2.sy mbol 為let ter 或數字或 3.wo rd由若干個sy mbol 連線而成 4.pr efix 由若干個wo rd連線而成,中間以 隔開 5.do main 由兩個或三個le tter ...

最長字串鏈結

有n個長為m 1的字串,如果某個字串的最後m個字元與某個字串的前m個字元匹配,則兩個字串可以聯接,問這n個字串最多可以連成乙個多長的字串,如果出現迴圈,則返回錯誤。思路 分析一下,將各個字串作為乙個節點,首尾鏈結就好比是一條邊,將兩個節點連線起來,於是問題就變 成乙個有關圖的路徑長度的問題。鏈結所得...