我們用乙個特殊的字串 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
你可以假設題目中不存在巢狀的花括號
在一對連續的花括號(開花括號與閉花括號)之間的所有字母都不會相同
public
class 字母切換leetcode1087 '
)elseif(
!isend)
else
if(str.
charat
(i)==
'else
}return map;
}public
static string[
]expand
(string str)
private
static
void
recursion
(map
datamap, list
resultlist, stringbuilder result,
int index)
stringbuilder valuestring = datamap.
get(index)
;for
(int i =
0; i < valuestring.
length()
; i++)}
public
static
void
main
(string[
] args)
d");
// for (integer index : map.keyset())
string[
] array =
expand
("e,");
for(
int i =
0; i < array.length; i++)}
}
LeetCode 1087 字母切換(回溯)
我們用乙個特殊的字串 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 思路 還是...