Interview Question - combine words using words

題大概是這樣孙技,一個INPUT STRING ARRAY1 比如CAT, DOG排作,一個INPUT STRING ARRAY 2, 比如GAT, DOC, CD, GOAT, BAD, COOL
要求第一個INPUT ARRAY的字母必須全部用蕾久,而且每個字母只能用一次拌夏,求其能組合成的INPUT STRING ARRAY2里的單詞組合
比如上面這個例子,返回值會是{{GAT, DOC},{CD, GOAT}}

http://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=201395

My code:

private int[] charSet = new int[26];
    private int charSum = 0;
    public List<List<String>> wordSearchAnagram(List<String> input1, List<String> input2) {
        for (String s : input1) {
            for (char c : s.toCharArray()) {
                charSet[c - 'a']++;
                charSum++;
            }
        }
        List<List<String>> ret = new ArrayList<List<String>>();
        search(0, input2, new ArrayList<String>(), ret, 0);
        return ret;
    }
    
    private void search(int begin, List<String> input2, List<String> group, List<List<String>> ret, int counter) {
        if (counter > charSum) {
            return;
        }
        else if (counter == charSum) {
            int[] temp = Arrays.copyOf(charSet, 26);
            for (String s : group) {
                for (char curr : s.toCharArray()) {
                    temp[curr - 'a']--;
                    if (temp[curr - 'a'] < 0) {
                        return;
                    }
                }
            }
            ret.add(new ArrayList<String>(group));
        }
        else {
            for (int i = begin; i < input2.size(); i++) {
                group.add(input2.get(i));
                search(i + 1, input2, group, ret, counter + input2.get(i).length());
                group.remove(group.size() - 1);
            }
        }
    }

注意盹愚,如果 dictionary 里面的單詞可以重復(fù)使用站故,那么,
search(i, ...) 而不是 search(i + 1, ...)

Anyway, Good luck, Richardo! -- 09/27/2016

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末愈腾,一起剝皮案震驚了整個濱河市岂津,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌吮成,老刑警劉巖辜梳,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件作瞄,死亡現(xiàn)場離奇詭異危纫,居然都是意外死亡,警方通過查閱死者的電腦和手機叶摄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門蛤吓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宵喂,“玉大人会傲,你說我怎么就攤上這事÷懔牵” “怎么了泼疑?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長退渗。 經(jīng)常有香客問我,道長个粱,這世上最難降的妖魔是什么翻翩? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮嫂冻,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘弧烤。我一直安慰自己蹬敲,他們只是感情好,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布急波。 她就那樣靜靜地躺著瘪校,像睡著了一般澄暮。 火紅的嫁衣襯著肌膚如雪阱扬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天馍刮,我揣著相機與錄音窃蹋,去河邊找鬼。 笑死警没,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的亡脸。 我是一名探鬼主播树酪,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嗅回!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起埂陆,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤娃豹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后懂版,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡民鼓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年丰嘉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饮亏。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖荐开,靈堂內(nèi)的尸體忽然破棺而出简肴,到底是詐尸還是另有隱情晃听,我是刑警寧澤着帽,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布仍翰,位于F島的核電站赫粥,受9級特大地震影響予借,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜灵迫,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一瀑粥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧狞换,春花似錦、人聲如沸修噪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至裤园,卻和暖如春够吩,著一層夾襖步出監(jiān)牢的瞬間比然,已是汗流浹背周循。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工湾笛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嚎研。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓库倘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親教翩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

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

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗蚜退。 張土汪:刷leetcod...
    土汪閱讀 12,747評論 0 33
  • snap (1)find median from data stream** only use one tree ...
    秋_軒閱讀 518評論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理钻注,服務(wù)發(fā)現(xiàn)配猫,斷路器,智...
    卡卡羅2017閱讀 134,659評論 18 139
  • 基礎(chǔ)命令 主要的命令和快捷鍵 Linux系統(tǒng)命令由三部分組成:cmd + [options]+[operation...
    485b1aca799e閱讀 1,099評論 0 0
  • 語言的基礎(chǔ)部分 程序是指令的集合捆交,寫程序就是寫一系列的指令去控制計算機去做我們想做的事情凡伊。編譯:將程序設(shè)計語言轉(zhuǎn)換...
    Daniel01閱讀 843評論 0 0