在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ A string Each letter in the word has 1 or more options. If there is one option, the letter is represented as is. If there is more than one option, then curly braces delimit the options. For example, For example, Return all words that can be formed in this manner, in lexicographical order. Example 1: Input: Example 2: Input: Note:
我们用一个特殊的字符串 单词中的每个字母可能只有一个选项或存在多个备选项。如果只有一个选项,那么该字母按原样表示。 如果存在多个选项,就会以花括号包裹来表示这些选项(使它们与其他字母分隔开),例如 例子: 请你按字典顺序,返回所有以这种方式形成的单词。 示例 1: 输入:"{a,b}c{d,e}f" 输出:["acdf","acef","bcdf","bcef"] 示例 2: 输入:"abcd" 输出:["abcd"] 提示:
76 ms 1 class Solution { 2 func permute(_ S: String) -> [String] { 3 var res:[String] = [String]() 4 res.append(String()) 5 var cs:[Character] = Array(S) 6 let l:Int = cs.count 7 var i:Int = 0 8 while(i < l) 9 { 10 if cs[i] == "{" 11 { 12 var t:String = String() 13 i += 1 14 while(cs[i] != "}") 15 { 16 t.append(cs[i]) 17 i += 1 18 } 19 let x:[String] = t.split{$0 == ","}.map(String.init) 20 var res1:[String] = [String]() 21 for g in x 22 { 23 for temp in res 24 { 25 res1.append(temp + g) 26 } 27 } 28 res = res1 29 30 } 31 else 32 { 33 var res1:[String] = [String]() 34 for temp in res 35 { 36 var str = temp 37 str.append(cs[i]) 38 res1.append(str) 39 } 40 res = res1 41 } 42 i += 1 43 } 44 res.sort() 45 return res 46 } 47 }
|
请发表评论