題目連結:
題目意譯:
現在有個秀逗的鍵盤其中有些字母鍵無法正常使用。其他的按鍵則是正常的。
給定一個由多個彼此之間以一個空白(沒有前導或是末尾空白)分隔的字詞組成之字串 text 以及一個由代表壞掉的按鍵之相異字元所組成的字串 brokenLetters,回傳在使用這個鍵盤的情況下你可以完整打出的 text 中的字詞數量。
限制:
1 ≦ text.length ≦ 10 ^ 4
0 ≦ brokenLetters.length ≦ 26
text 由多個字詞組成,其彼此之間以一個空白隔開且沒有任何前導或末尾空白。
每個字詞只由小寫英文字母組成。
brokenLetters 由相異的小寫英文字母組成。
範例測資:
範例 1:
輸入: text = "hello world", brokenLetters = "ad"
輸出: 1
解釋: 我們無法打出 "world" 因為 'd' 這個按鍵壞了。
範例 2:
輸入: text = "leet code", brokenLetters = "lt"
輸出: 1
解釋: 我們無法打出 "leet" 因為 'l' 和 't' 這兩個按鍵壞了。
範例 3:
輸入: text = "leet code", brokenLetters = "e"
輸出: 0
解釋: 我們無法打出任何一個字詞因為 'e' 這個按鍵壞了。
解題思維:
先利用一個布林陣列來表示每個字母是否可以正常使用,然後掃過一次 brokenLetters 將相應位置的字母設為「不正常」。這樣在檢查一個字母是否可以正常使用只需要去檢查陣列中的相應位置而不用每次都要掃過一次 brokenLetters 才知道。
接著就是利用
這題等等的概念將每個字詞按照空白隔開,然後對每個字詞的每個字母都去檢查是否正常。如果一個字詞的所有字母都是正常的,便代表我們可以完整打出該字詞。以此便可以知道可完整打出的字詞總數為多少。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。