題目:利用字符重復(fù)出現(xiàn)的次數(shù)躁垛,可以實(shí)現(xiàn)基本的字符串壓縮功能.字符串串“aabcccccaaa”經(jīng)壓縮會變成“a2b1c5a3”,若壓縮后的字符串沒有變短剖毯,則返回原先的字符串.
核心代碼:
<pre><code>` func compressBetter(str:String) -> String {
let count:Int = str.characters.count
if count == 0 {
return ""
}
var result:String = ""
var last:Character = str[0] as Character
var charCount:Int = 0
for i in 0..<count {
let temp:Character = str[i] as Character
if temp == last {
charCount += 1
} else {
result.append(last)
result.append("\(charCount)")
last = temp
charCount = 1
}
}
result.append(last)
result.append("\(charCount)")
if result.characters.count >= count {
return str
}
return result
}`</code></pre>
測試代碼:
<pre><code>var compressString:String = "abbcccdddd" var compressResult:String = myString.compressBetter(str: compressString) print("壓縮結(jié)果:\(compressResult)")
</code></pre>