Swift-字符串压缩

题目:利用字符重复出现的次数,可以实现基本的字符串压缩功能.字符串串“aabcccccaaa”经压缩会变成“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("压缩结果:\(compressResult)")</code></pre>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,779评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,001评论 19 139
  • HTML基本结构: http-equiv=“Content-Type” 文档类型content=“text/htm...
    lt0719阅读 145评论 0 0
  • 我是谁?我是东方啊!东方是谁? 来到自控力演讲训练营,这是第三次做自我介绍了,第一次的的时候介绍了来自控力演讲训练...
    东方君阅读 364评论 0 0
  • 此刻我听到后面有人在质疑我的座位为何如此直立,有人在说她在打坐,接着我听到了打坐那不成佛了,语气里我感到了轻视,两...
    徐恺嵘阅读 291评论 0 0