伍六七帶你學演算法 入門篇 拼寫單詞

2021-10-04 02:40:38 字數 1477 閱讀 1909

力扣解題,每日一題 1160. 拼寫單詞

難度- 簡單

給你乙份『詞彙表』(字串陣列) words 和一張『字母表』(字串) chars。

假如你可以用 chars 中的『字母』(字元)拼寫出 words 中的某個『單詞』(字串),那麼我們就認為你掌握了這個單詞。

注意:每次拼寫時,chars 中的每個字母都只能用一次。

返回詞彙表 words 中你掌握的所有單詞的 長度之和。

示例 1:

輸入:words = [「cat」,「bt」,「hat」,「tree」], chars = 「atach」

輸出:6

解釋:可以形成字串 「cat」 和 「hat」,所以答案是 3 + 3 = 6。

示例 2:

輸入:words = [「hello」,「world」,「leetcode」], chars = 「welldonehoneyr」

輸出:10

解釋:可以形成字串 「hello」 和 「world」,所以答案是 5 + 5 = 10。

1 <= words.length <= 1000

1 <= words[i].length, chars.length <= 100

所有字串中都僅包含小寫英文本母

/**

* 本題採用最簡單的解法,在效能上並不是那麼優秀,主要對邏輯和資料結構進行練習

* 解題思路:

* 本題要求從chars中拿到所有的字元,看words中有哪些字串是chars中的字元組成的,然後返回總長度。

* 1、首先,我們需要乙個儲存符合條件字串的物件 stringbuilder ,用來儲存滿足條件的字串;

* 2、利用迴圈遍歷所有的字串,在其中尋找符合條件的字串並將其累加在 stringbuild 上;

* 3、利用迴圈,把某一字串中用到的所有字元一一和字典中的字元進行比對,含有就先將字典中的該字元去除,若有乙個字元是字典中不存在的,這該字串不滿足條件,break;

* 4、最後將得到的結果拿到長度返回。

*/public

class

_1160拼寫單詞

stringbuilder s =

newstringbuilder()

;for

(int i=

0;ielse}}

return s.

length()

;}public

static

void

main

(string[

] args)

; system.out.

println

(countcharacters

(w,"abc"))

;}}

伍六七帶你學演算法 入門篇 最長回文串

力扣解題,每日一題 409.最長回文串 難度 簡單 給定乙個包含大寫字母和小寫字母的字串,找到通過這些字母構造成的最長的回文串。在構造過程中,請注意區分大小寫。比如 aa 不能當做乙個回文字串。注意 假設字串的長度不會超過 1010。示例 1 輸入 abccccdd 輸出 7 解釋 我們可以構造的最...

伍六七帶你學演算法 入門篇 鍊錶的中間節點

力扣 876鍊錶的中間節點 難度 簡單 給定乙個帶有頭結點 head 的非空單鏈表,返回鍊錶的中間結點。如果有兩個中間結點,則返回第二個中間結點。示例 1 輸入 1,2,3,4,5 輸出 此列表中的結點 3 序列化形式 3,4,5 返回的結點值為 3 測評系統對該結點序列化表述是 3,4,5 注意,...

伍六七帶你學演算法 高階篇 排序演算法

給定乙個整數陣列 nums,將該陣列公升序排列。示例 1 輸入 5,2,3,1 輸出 1,2,3,5 示例 2 輸入 5,1,1,2,0,0 輸出 0,0,1,1,2,5 各排序演算法解法如下 如想要了解演算法排序原理,見 十大演算法 public class 912排序陣列 快速排序 void q...