【发布时间】:2017-05-19 07:31:43
【问题描述】:
使用以下代码,我在控制台中得到fatal error: Can't form a Character from an empty String。我看不出我在哪里或做错了什么。
class Solution {
func isValid(_ s: String) -> Bool {
var dictionary = [Character: Character]()
dictionary["("] = ")"
dictionary["{"] = "}"
dictionary["["] = "]"
for (i, character) in s.characters.enumerated() {
if i % 2 == 0 {
if let idx = s.index(s.startIndex, offsetBy: i + 1, limitedBy: s.endIndex) {
if dictionary[character] != s[idx] {
return false
}
}
}
}
return true
}
}
var sol = Solution()
let test = "()[]["
print(sol.isValid(test))
Xcode 8.3.2 斯威夫特 3+
【问题讨论】:
-
比较 stackoverflow.com/q/42958011/2976878 -
limitedBy:参数是 inclusive 上限,因此您尝试使用其endIndex为字符串下标(这是过去结束索引)。
标签: swift xcode swift-playground