免费注册 查看新帖 |

Chinaunix

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

这道哈希编程应该怎么编,求助!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-12 22:42 |只看该作者 |倒序浏览
请用电话上字母和数字的对应关系来来实现字母到数字的转换.
举个例子:
        输入help,输出应为4357.

论坛徽章:
0
2 [报告]
发表于 2009-12-12 22:56 |只看该作者
%phone_book
$phone_book{help} = 4357

input: $key
then,
if( exists($phone{$key}) ) {
       print $phone{help}
}

[ 本帖最后由 Perl_Er 于 2009-12-12 22:58 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2009-12-12 23:29 |只看该作者
我是新手,希望用哈希结构来写,不用先定义下哈希结构吗?比如说2和ABC相对应,3和DEF相对应
例子里的意思是在电话机上h对应4,e对应3,l对应5,p对应7 (大小写可以忽略)

[ 本帖最后由 alen0826 于 2009-12-12 23:32 编辑 ]

论坛徽章:
1
狮子座
日期:2013-12-16 16:09:24
4 [报告]
发表于 2009-12-12 23:32 |只看该作者
  1. #!/usr/bin/perl -w

  2. my %key;
  3. map{$key{$_}=1} 'a';
  4. map{$key{$_}=2} 'b'..'c';
  5. map{$key{$_}=3} 'd'..'f';
  6. map{$key{$_}=4} 'g'..'i';
  7. map{$key{$_}=5} 'j'..'l';
  8. map{$key{$_}=6} 'm'..'o';
  9. map{$key{$_}=7} 'p'..'s';
  10. map{$key{$_}=8} 't'..'u';
  11. map{$key{$_}=9} 'w'..'z';
  12. while ($ARGV[0]=~/./g){
  13. print $key{$&};
  14. }
复制代码


纯当map练习作业

论坛徽章:
0
5 [报告]
发表于 2009-12-12 23:43 |只看该作者
非常希望哪位高手能用哈希结构写出来,我可以边看边对照学习,谢谢!

论坛徽章:
1
狮子座
日期:2013-12-16 16:09:24
6 [报告]
发表于 2009-12-12 23:47 |只看该作者
明明用了哈希了啊,还要那种???

论坛徽章:
0
7 [报告]
发表于 2009-12-12 23:58 |只看该作者
map是什么意思
map{$key{$_}=1} 'a'; 是什么意思呢?
我还没学到map这个功能吧

论坛徽章:
1
狮子座
日期:2013-12-16 16:09:24
8 [报告]
发表于 2009-12-13 00:04 |只看该作者
map{$key{$_}=2} 'b'..'c';
等价于
$key{'b'}=2;
$key{'c'}=2;

代码改的简洁一点。。。

  1. foreach my $h ('a','b','d','g','j','m','p','t','w'){
  2.         ++$i;
  3.         map {$key{$_}=$i} $h..'z';  
  4. }
  5. while ($ARGV[0]=~/./g){
  6. print $key{$&};
  7. }
复制代码

[ 本帖最后由 ttcn_cu 于 2009-12-13 00:16 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2009-12-13 15:07 |只看该作者
先学了再问, 没有学就来问是白问

论坛徽章:
1
狮子座
日期:2013-12-16 16:09:24
10 [报告]
发表于 2009-12-13 16:14 |只看该作者
仙子大人发飙了。收回前面的map,改回foreach

  1. foreach my $h ('a','b','d','g','j','m','p','t','w'){
  2.         ++$i;
  3.         $key{$_}=$i foreach $h..'z';  
  4. }
  5. while ($ARGV[0]=~/./g){
  6. print $key{$&};
  7. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP