免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 5891 | 回复: 32
打印 上一主题 下一主题

算法题哦 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-18 12:09 |只看该作者 |倒序浏览
题来啦,题来啦,




如何判断一个字符串里面是否有字符占了一半或以上?

看谁实现的聪明  


好吧好吧,外星人是未知的,所以题目现在改成这样了

统计一个字符串里面出现次数最多的字符


[ 本帖最后由 teebye 于 2009-3-18 15:54 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-03-18 12:49 |只看该作者
lambda s: any(s.count(c)>=len(s)/2 for c in s)

论坛徽章:
0
3 [报告]
发表于 2009-03-18 12:52 |只看该作者
原帖由 teebye 于 2009-3-18 12:09 发表
题来啦,题来啦,




如何判断一个字符串里面是否有字符占了一半或以上?

看谁实现的聪明  

s="asadkaaaaaaaaaaaaaasjkdasdjkhasdjkh"

for i in s:
  if s.count(i)>(len(s)/2):
    print i
  

论坛徽章:
0
4 [报告]
发表于 2009-03-18 12:58 |只看该作者
原帖由 satoru 于 2009-3-18 12:49 发表
lambda s: any(s.count(c)>=len(s)/2 for c in s)

any返回的布尔值

论坛徽章:
0
5 [报告]
发表于 2009-03-18 13:58 |只看该作者
s="aaabbb"
d={}
for i in [c for c in s if s.count(c)>=(len(s)/2)]:
     if d.has_key(i):
          pass
     else:
          d[i]='none'
          print i

     

输出稍微好点。。。

论坛徽章:
0
6 [报告]
发表于 2009-03-18 14:13 |只看该作者
实现的不够聪明

论坛徽章:
0
7 [报告]
发表于 2009-03-18 14:25 |只看该作者
原帖由 teebye 于 2009-3-18 14:13 发表
实现的不够聪明

不明白聪明的涵义是什么

字符窜又不是数字
又不能用于数学运算
哪来的算法

而且字符窜 包含的范围太大了,什么方法叫 聪明?

论坛徽章:
0
8 [报告]
发表于 2009-03-18 15:02 |只看该作者

回复 #1 teebye 的帖子

二楼的改编版,受了版主前面贴子的影响。。

a='fdafasdfafasdfjjjjjjjjjjjjjjjjjjjjjjjjj'
set([ i for i in a if a.count(i) > len(a)/2])

论坛徽章:
0
9 [报告]
发表于 2009-03-18 15:12 |只看该作者
>>> a='fdafasdfafasdfjjjjjjjjjjjjjjjjjjjjjjjjj'
>>> dict([(i,a.count(i)) for i in a])
{'a': 4, 's': 2, 'j': 25, 'd': 3, 'f': 5}

一半就再除以个长度/2把

论坛徽章:
0
10 [报告]
发表于 2009-03-18 15:29 |只看该作者
原帖由 zhenglxd 于 2009-3-18 14:25 发表

不明白聪明的涵义是什么

字符窜又不是数字
又不能用于数学运算
哪来的算法

而且字符窜 包含的范围太大了,什么方法叫 聪明?


我以为,聪明就是要用外星人的思维方式去思考
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP