LeetCode 1087 字母切換(回溯)

2021-10-08 10:54:50 字數 1247 閱讀 1477

我們用乙個特殊的字串 s 來表示乙份單詞列表,之所以能展開成為乙個列表,是因為這個字串 s 中存在乙個叫做「選項」的概念:

單詞中的每個字母可能只有乙個選項或存在多個備選項。

如果只有乙個選項,那麼該字母按原樣表示。

如果存在多個選項,就會以花括號包裹來表示這些選項(使它們與其他字母分隔開),例如""表示["a", "b", "c"]

例子:"d"可以表示單詞列表["ade", "adf", "bde", "bdf", "cde", "cdf"]

請你按字典順序,返回所有以這種方式形成的單詞。

示例 1:

輸入:"cf"

輸出:[

"acdf"

,"acef"

,"bcdf"

,"bcef"

]示例 2:

輸入:"abcd"

輸出:[

"abcd"]

1<= s.length <=

50你可以假設題目中不存在巢狀的花括號

在一對連續的花括號(開花括號與閉花括號)之間的所有字母都不會相同

class

solution'||

(s[i]

==''

) count++

;sort

(t.begin()

, t.

end())

; str.

push_back

(t);

t.clear()

;}}if

(!t.

empty()

)if(count ==0)

return

;//沒有花括號,直接返回

dfs(str,"",

0);return ans;

}void

dfs(vectorchar

>>

& str, string s,

int i)

for(

int j =

0; j < str[i]

.size()

;++j)

dfs(str, s+str[i]

[j], i+1)

;}};

8 ms 8.2 mb

我的csdn部落格位址

leetcode1087 字母切換

我們用乙個特殊的字串 s 來表示乙份單詞列表,之所以能展開成為乙個列表,是因為這個字串 s 中存在乙個叫做 選項 的概念 單詞中的每個字母可能只有乙個選項或存在多個備選項。如果只有乙個選項,那麼該字母按原樣表示。如果存在多個選項,就會以花括號包裹來表示這些選項 使它們與其他字母分隔開 例如 表示 a...

LeetCode(242 字母異構)

如題 看上去很簡單,但是有點蛋疼。直接的做法是什麼,遍歷s,對應的取每一位字元然後對應從t中刪除相同的字元,直觀的實現 public static boolean isanagram string s,string t for int i 0 i但是,很蛋疼的是,時間超限了 另尋它法,s和t擁有相同...

leetcode 49 字母異位

給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。通過次數80,334提交次數129,632 思路 還是...