我正在做的黑客排名https://www.hackerrank.com/challenges/30-review-loop的問題,我也陷入了超時的問題是在四圍的方式解決的要快得多。我希望這裏有人能向我解釋爲什麼一個人比另一個人快。或者指向我解釋這種現象的文檔追加字符串不是追加字符
如果您沒有帳戶,那麼您需要輸入測試用例的數量,然後輸入一個字符串,您的代碼將創建一個包含所有奇數索引中的字符和偶數索引中的所有字符組成的字符串。例如輸入
2
Hacker
Rank
回報
Hce akr
Rn ak
簡單吧?這是我所做的代碼。
if let line = readLine(), numOftests = Int(line) {
for iter in 0..<numOftests {
var evenString = ""
var oddString = ""
var string = readLine()!
var arrChars = [Character](string.characters) //1
for idx in 0..<string.characters.count {
if idx % 2 == 0 {
oddString.append(arrChars[idx]) //1
//oddString.append(string[string.startIndex.advancedBy(idx)]) //2 <= Times out
}
else {
evenString.append(arrChars[idx]) //1
//evenString.append(string[string.startIndex.advancedBy(idx)]) //2 <= Times out
}
}
print("\(oddString) \(evenString)")
}
}
最初我使用了註釋掉的代碼。這導致超時。總結我的問題是,使用下標系統處理字符串會導致它比索引字符數組慢得多。它令我吃驚,如果不是黑客級別的討論組,我不會找到解決方案。現在它招來我,因爲我不知道爲什麼這會有所作爲。
謝謝。現在你告訴我,我能找到該特性的文檔。 – Biclops