LeetCode 1160. 拼寫單詞 Find Words That Can Be Formed by Characters

【題目描述】
給你一份『詞匯表』(字符串?dāng)?shù)組) words 和一張『字母表』(字符串) chars证薇。

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

注意:每次拼寫時箩张,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刊愚、1 <= words.length <= 1000
2鸥诽、1 <= words[i].length, chars.length <= 100
3、所有字符串中都僅包含小寫英文字母

【思路】
1拳昌、字符個數(shù)比較钠龙,使用哈希表
2、words中的每個單詞和chars比較沈矿,chars包含單詞 單詞的個數(shù)記錄下來羹膳,否則下一個單詞
3谷羞、時間復(fù)雜度0(m*n) m為單詞的個數(shù) n為單詞的字符數(shù)
4、空間復(fù)雜度O(n)

Swift代碼實現(xiàn):

func countCharacters(_ words: [String], _ chars: String) -> Int {
    if chars.count == 0 || words.count == 0 { return 0 }
    var charsMap = [Character:Int]()
    for c in chars {
        var value = charsMap[c] ?? 0
        value+=1
        charsMap[c] = value
    }
    var strArr = [String]()
    for str in words {
        var tmp = charsMap
        for (i,cc) in str.enumerated() {
            var count = tmp[cc] ?? 0
            if count == 0 {
                break
            }
            count-=1
            tmp[cc] = count
            if i == str.count-1 {
                strArr.append(str)
            }
        }
    }
    var res = 0
    for s in strArr {
        res+=s.count
    }
    return res
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末溜徙,一起剝皮案震驚了整個濱河市湃缎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蠢壹,老刑警劉巖嗓违,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異图贸,居然都是意外死亡蹂季,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門疏日,熙熙樓的掌柜王于貴愁眉苦臉地迎上來偿洁,“玉大人,你說我怎么就攤上這事沟优。” “怎么了宾肺?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵隘谣,是天一觀的道長掌栅。 經(jīng)常有香客問我渣玲,道長逾苫,這世上最難降的妖魔是什么铅搓? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任氢烘,我火速辦了婚禮,結(jié)果婚禮上蜀踏,老公的妹妹穿的比我還像新娘果覆。我一直安慰自己,他們只是感情好燎猛,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瘟滨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪败玉。 梳的紋絲不亂的頭發(fā)上返干,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機(jī)與錄音癌淮,去河邊找鬼。 笑死栓袖,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的捧弃。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼贯被,長吁一口氣:“原來是場噩夢啊……” “哼看幼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起棚唆,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤摆寄,失蹤者是張志新(化名)和其女友劉穎逗扒,沒想到半個月后矩肩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡瞧捌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年曙砂,在試婚紗的時候發(fā)現(xiàn)自己被綠了乔夯。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡妹笆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出海渊,到底是詐尸還是另有隱情徙菠,我是刑警寧澤缺狠,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布驮樊,位于F島的核電站雕沿,受9級特大地震影響肥哎,放射性物質(zhì)發(fā)生泄漏篡诽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望廷支。 院中可真熱鬧啃憎,春花似錦、人聲如沸悯许。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽垃僚。三九已至谆棺,卻和暖如春改淑,著一層夾襖步出監(jiān)牢的瞬間榆纽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留双霍,地道東北人掀宋。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像劲妙,于是被迫代替她去往敵國和親湃鹊。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容