2 Star 2 Fork 1

Justin Yuan/LeetCode-Swift

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
GeneralizedAbbreviation.swift 1007 Bytes
一键复制 编辑 原始数据 按行查看 历史
/**
* Question Link: https://leetcode.com/problems/generalized-abbreviation/
* Primary idea: Classic Depth-first Search
*
* Time Complexity: O(n^n), Space Complexity: O(2^n)
*
*/
class GeneralizedAbbreviation {
func generateAbbreviations(_ word: String) -> [String] {
var res = [String]()
let chars = Array(word.characters)
dfs(chars, &res, "", 0)
return res
}
private func dfs(_ word: [Character], _ res: inout [String], _ subset: String, _ index: Int) {
if word.count == index {
res.append(String(subset))
return
}
res.append(subset + String(word.count - index))
for i in index..<word.count {
let offset = i - index
if offset != 0 {
dfs(word, &res, subset + String(offset) + String(word[i]), i + 1)
} else {
dfs(word, &res, subset + String(word[i]), i + 1)
}
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/BiggerMax/LeetCode-Swift.git
git@gitee.com:BiggerMax/LeetCode-Swift.git
BiggerMax
LeetCode-Swift
LeetCode-Swift
master

搜索帮助