论坛首页 入门技术论坛

有个很诡异的需求,向高手请教最优解

浏览 15784 次
该帖已经被评为新手帖
作者 正文
   发表时间:2006-10-12  
有一个List
内容如下:
a,b,b,b,c,c,d

想通过一种方法得到一个这样的串;
a;b*3;c*2;d
方法是有但是想寻求最简洁的实现。
注意:不能破坏List内容;
还有a,b,b,b,c,c,d只是个表示而已,实际里面是存的是对象,所以要对每个对象进行对比。
在保证速度的情况下最优解
   发表时间:2006-10-12  
b*3是什么意思  *在一起还是怎么样
0 请登录后投票
   发表时间:2006-10-12  
有点意思,先做个记号,斑竹先不要着急删除哦!
0 请登录后投票
   发表时间:2006-10-12  
ddandyy 写道
b*3是什么意思  *在一起还是怎么样

对就是一个String
a;b*3;c*2;d

b*3表示有3个b
0 请登录后投票
   发表时间:2006-10-12  
procedure thefun(arg:string):string;
result:= 'a;b*3;c*2;d';
end;
0 请登录后投票
   发表时间:2006-10-12  
zzsczz 写道


procedure thefun(arg:string):string;
begin
return "a;b*3;c*2;d";
end;


你这个是硬编码;需求要的是根据List里的内容来计算。
0 请登录后投票
   发表时间:2006-10-12  
遍历然后对每个字母计数不就OK了?
0 请登录后投票
   发表时间:2006-10-12  
foxty 写道
遍历然后对每个字母计数不就OK了?

我上面不是说过了,解它没什么问题,我求的是最优解(用最少的代码来解它)
0 请登录后投票
   发表时间:2006-10-12  
最少的代码就是遍历
0 请登录后投票
   发表时间:2006-10-12  
遍历,将结果放在map里,先查map里是否有,无则put(x,1),有则将x键的值加1,完成后,在根据map生成结果字符串。
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics