博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编写一个统计字符串中每个连续字符个数的函数,如 `aaabbcccaabcd` 输出为`3a2b3c2a1b1c1d`...
阅读量:6846 次
发布时间:2019-06-26

本文共 1609 字,大约阅读时间需要 5 分钟。

aaabbcccaabcd 输出为3a2b3c2a1b1c1d char_count(@"aaabbcccaabcd");

//aaabbcccaabcd -> 3a2b3c2a1b1c1dNSString* char_count(NSString* str) {    if (!str.length) return @"Please input a str";    NSMutableDictionary *charRepeatCountDICTM = [NSMutableDictionary new];    char lastChar = [str characterAtIndex:0];    NSString *lastStr = [NSString stringWithFormat:@"%c", lastChar];    charRepeatCountDICTM[[NSString stringWithFormat:@"%c", lastChar]] = @1;    NSMutableString *readableStrM = [NSMutableString new];    for (NSInteger i = 1; i < str.length; i++) {        char curChar = [str characterAtIndex:i];        NSString *curStr = [NSString stringWithFormat:@"%c", curChar];        NSNumber *repeatValue = charRepeatCountDICTM[curStr];        if (!repeatValue) {            charRepeatCountDICTM[curStr] = repeatValue = @1;        }        if ((int)lastChar == (int)curChar) {            NSInteger value = repeatValue.integerValue;            charRepeatCountDICTM[curStr] = @(++value);        } else {            NSInteger lastRepeatCount = [charRepeatCountDICTM[lastStr] integerValue];            [readableStrM appendString:[NSString stringWithFormat:@"%ld%c", lastRepeatCount, lastChar]];            [charRepeatCountDICTM removeObjectForKey:lastStr];        }        lastChar = curChar;        lastStr = [NSString stringWithFormat:@"%c", lastChar];    }    if (charRepeatCountDICTM.allKeys) {        [readableStrM appendString:[NSString stringWithFormat:@"%ld%c", [charRepeatCountDICTM[lastStr] integerValue], lastChar]];    }    return readableStrM.copy;}复制代码

转载于:https://juejin.im/post/5c19f761518825778a56e03a

你可能感兴趣的文章
《DBA修炼之道:数据库管理员的第一本书》——第3章附加问题
查看>>
爱尔兰不得不接受苹果130亿欧元税款 都是欧盟逼的
查看>>
《DBA修炼之道:数据库管理员的第一本书》——3.4节概念、逻辑和物理数据模型...
查看>>
顶级智囊支招 丰泽智慧城市建设
查看>>
移动安全成头号威胁,中国NFC安全技术有望抢占国际标准制高点
查看>>
Google 宣布新开源压缩算法 Brotli
查看>>
PostgreSQL 10 GIN索引 锁优化
查看>>
《AngularJS深度剖析与最佳实践》一1.7 实战小结
查看>>
rlite —— 兼容 Redis 的嵌入式 NoSQL 引擎
查看>>
《MATLAB神经网络超级学习手册》——2.5 本章小结
查看>>
SkyNet:用开源系统管理物联网
查看>>
《Linux内核修炼之道》——1.2 内核的版本
查看>>
因为人人都作弊 Google 淘汰 Octane JS 基准测试
查看>>
《深入理解Elasticsearch(原书第2版)》一2.1 Apache Lucene默认评分公式解释
查看>>
《金蝶ERP-K/3模拟实战——财务/供应链/生产制造(第2版)》——1.3 安装金蝶ERP-K/3(V11.X)...
查看>>
Linux 开发者考虑为内核崩溃引入条形码
查看>>
Nike 发布其开源项目,意欲何为?
查看>>
Maven项目中获取classpath和资源文件的路径
查看>>
《Adobe Dreamweaver CC经典教程》——1.6 个性化首选项
查看>>
为啥HashMap的长度一定是2的n次方
查看>>