锁定老帖子 主题:有个很诡异的需求,向高手请教最优解
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2006-10-12
内容如下: a,b,b,b,c,c,d 想通过一种方法得到一个这样的串; a;b*3;c*2;d 方法是有但是想寻求最简洁的实现。 注意:不能破坏List内容; 还有a,b,b,b,c,c,d只是个表示而已,实际里面是存的是对象,所以要对每个对象进行对比。 在保证速度的情况下最优解 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-10-12
b*3是什么意思 *在一起还是怎么样
|
|
返回顶楼 | |
发表时间:2006-10-12
有点意思,先做个记号,斑竹先不要着急删除哦!
|
|
返回顶楼 | |
发表时间:2006-10-12
ddandyy 写道 b*3是什么意思 *在一起还是怎么样
对就是一个String a;b*3;c*2;d b*3表示有3个b |
|
返回顶楼 | |
发表时间:2006-10-12
procedure thefun(arg:string):string;
result:= 'a;b*3;c*2;d'; end; |
|
返回顶楼 | |
发表时间:2006-10-12
zzsczz 写道 procedure thefun(arg:string):string; begin return "a;b*3;c*2;d"; end; 你这个是硬编码;需求要的是根据List里的内容来计算。 |
|
返回顶楼 | |
发表时间:2006-10-12
遍历然后对每个字母计数不就OK了?
|
|
返回顶楼 | |
发表时间:2006-10-12
foxty 写道 遍历然后对每个字母计数不就OK了?
我上面不是说过了,解它没什么问题,我求的是最优解(用最少的代码来解它) |
|
返回顶楼 | |
发表时间:2006-10-12
最少的代码就是遍历
|
|
返回顶楼 | |
发表时间:2006-10-12
遍历,将结果放在map里,先查map里是否有,无则put(x,1),有则将x键的值加1,完成后,在根据map生成结果字符串。
|
|
返回顶楼 | |