代码拉取完成,页面将自动刷新
/**
* 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)
}
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。