免费注册 查看新帖 |

Chinaunix

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

求助贴,请高手帮忙 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-06-24 10:26 |只看该作者 |倒序浏览
5可用积分

我想把下面两个数组合并,生成一个合成的数组,同一位置中只要任何一个数组中是“X”或者"O",则在合成数组中生成"X", 否则为1。

那个“.”的区域都是相同的位置,请问有没有什么好的方法。

数组1属于模板,这个数组2是实际生产中产生的Map,是变化的,请问有没有什么好方法??

我初步的想法将数组1读入一个二维数组,然后逐行分成一维数组, 再读入数组2,也转换成1位数组, 但问题是这些一维数组中没有分隔符,如何把他们分开逐位比较,不知道有没有什么办法??

当然各位高手如果有其他方法更好,这里多谢先。






Map数组1
  1. .........OXXXX.........
  2. .......XXXXXXXXXX......
  3. .....XXXXX1111XXXX.....
  4. ....XXX1111111111XX....
  5. ...XX111111111111XXO...
  6. ...XX1111111111111XX...
  7. ..XX111111111111111XXO.
  8. ..XX1111111111111111XX.
  9. .XX11111111111111111XX.
  10. .XX11111111111111111XX.
  11. .XX11111111111111111XXO
  12. .XX11111111111111111XXO
  13. .XX11111111111111111XXO
  14. .XX11111111111111111XX.
  15. .OXX1111111111111111XX.
  16. ..XX1111111111111111XX.
  17. ...XX11111111111111XX..
  18. ....XX111111111111XXO..
  19. ....XX111111111111XX...
  20. .....XXX1111111XXXX....
  21. ......XXXXXXXXXXXO.....
  22. ........XXXXXXXO.......
  23. .......................
复制代码
Map数组2
  1. .........XXXXX.........
  2. .......X111X1XX1X......
  3. .....X1111X111X11X.....
  4. ....XX1X1111111111X....
  5. ...X1X11111111X1111X...
  6. ...1XX1XX11X1X111111...
  7. ..X1X1111X1111111111XX.
  8. ..11X11XXXX11X1111111X.
  9. .XXX1111X1111X1X11111X.
  10. .X11111X1111111X111111.
  11. .XXX111111X11111111111X
  12. .XX11X1111111X1X111111X
  13. .X11111X1111X111111111X
  14. .X11111XX1111111X1X11X.
  15. .XX1X111X11X111X11X11X.
  16. ..X1X111111X1X1X1XX11X.
  17. ...11111111111111XX11..
  18. ....1X111X11X11111XXX..
  19. ....X1XX1111X1111XXX...
  20. .....XX1111111XX11X....
  21. ......X11XXX11XX1X.....
  22. ........11XXX1XX.......
  23. .......................
复制代码

论坛徽章:
78
双子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06狮子座
日期:2013-10-18 13:40:31双子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56处女座
日期:2013-10-24 17:15:30双子座
日期:2013-10-25 13:49:39午马
日期:2013-10-28 15:02:15
2 [报告]
发表于 2013-06-24 10:26 |只看该作者
  1. my @map1 = qw(
  2.     .........OXXXX.........
  3.     .......XXXXXXXXXX......
  4.     .....XXXXX1111XXXX.....
  5.     ....XXX1111111111XX....
  6.     ...XX111111111111XXO...
  7.     ...XX1111111111111XX...
  8.     ..XX111111111111111XXO.
  9.     ..XX1111111111111111XX.
  10.     .XX11111111111111111XX.
  11.     .XX11111111111111111XX.
  12.     .XX11111111111111111XXO
  13.     .XX11111111111111111XXO
  14.     .XX11111111111111111XXO
  15.     .XX11111111111111111XX.
  16.     .OXX1111111111111111XX.
  17.     ..XX1111111111111111XX.
  18.     ...XX11111111111111XX..
  19.     ....XX111111111111XXO..
  20.     ....XX111111111111XX...
  21.     .....XXX1111111XXXX....
  22.     ......XXXXXXXXXXXO.....
  23.     ........XXXXXXXO.......
  24.     .......................);

  25. @map1 = map {[split //]} @map1;

  26. my @map2 = qw(
  27.     .........XXXXX.........
  28.     .......X111X1XX1X......
  29.     .....X1111X111X11X.....
  30.     ....XX1X1111111111X....
  31.     ...X1X11111111X1111X...
  32.     ...1XX1XX11X1X111111...
  33.     ..X1X1111X1111111111XX.
  34.     ..11X11XXXX11X1111111X.
  35.     .XXX1111X1111X1X11111X.
  36.     .X11111X1111111X111111.
  37.     .XXX111111X11111111111X
  38.     .XX11X1111111X1X111111X
  39.     .X11111X1111X111111111X
  40.     .X11111XX1111111X1X11X.
  41.     .XX1X111X11X111X11X11X.
  42.     ..X1X111111X1X1X1XX11X.
  43.     ...11111111111111XX11..
  44.     ....1X111X11X11111XXX..
  45.     ....X1XX1111X1111XXX...
  46.     .....XX1111111XX11X....
  47.     ......X11XXX11XX1X.....
  48.     ........11XXX1XX.......
  49.     .......................);

  50. @map2 = map {[split //]} @map2;

  51. for my $m (0 .. $#map2) {
  52.     for my $n (0 .. $#{$map2[$m]}) {
  53.         if ($map2[$m][$n] =~ /X|O/ or $map1[$m][$n] =~ /X|O/) {
  54.             print 'X';
  55.         } else {
  56.             print '1';
  57.         }
  58.     }
  59.     print "\n";
  60. }
复制代码

论坛徽章:
78
双子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06狮子座
日期:2013-10-18 13:40:31双子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56处女座
日期:2013-10-24 17:15:30双子座
日期:2013-10-25 13:49:39午马
日期:2013-10-28 15:02:15
3 [报告]
发表于 2013-06-24 10:29 |只看该作者
但问题是这些一维数组中没有分隔符,如何把他们分开逐位比较

split分开一个字符为一个数据元素,然后一个个比较不就可以了

论坛徽章:
0
4 [报告]
发表于 2013-06-24 10:52 |只看该作者
yybmsrs 发表于 2013-06-24 10:29
但问题是这些一维数组中没有分隔符,如何把他们分开逐位比较

split分开一个字符为一个数据元素,然后一 ...


查了下,split果然可以分开字符,试试看。。

论坛徽章:
3
摩羯座
日期:2013-09-04 12:01:36申猴
日期:2013-10-23 12:12:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34
5 [报告]
发表于 2013-06-24 11:35 |只看该作者
回复 2# yybmsrs
  1. @map1 = map {[split //]} @map1;
复制代码
对数组@map1  做map处理后 为什么打印@map1数组每个元素 都是地址呢?

   

论坛徽章:
78
双子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06狮子座
日期:2013-10-18 13:40:31双子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56处女座
日期:2013-10-24 17:15:30双子座
日期:2013-10-25 13:49:39午马
日期:2013-10-28 15:02:15
6 [报告]
发表于 2013-06-24 13:43 |只看该作者
回复 5# grshrd49


    每个数组元素都是一个数组的引用

论坛徽章:
3
摩羯座
日期:2013-09-04 12:01:36申猴
日期:2013-10-23 12:12:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34
7 [报告]
发表于 2013-06-24 14:21 |只看该作者
回复 6# yybmsrs

我刚刚在你的
@map1 = map {[split //]} @map1;
后面加了
print "$_\n" for(@map1)
这样打印出来的也是地址啊
这个是什么情况呢??
这样的话
@a = ("a","b","c");
print "$_\n" for(@a);
是不是打印出来的也是地址呢?
   

论坛徽章:
78
双子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06狮子座
日期:2013-10-18 13:40:31双子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56处女座
日期:2013-10-24 17:15:30双子座
日期:2013-10-25 13:49:39午马
日期:2013-10-28 15:02:15
8 [报告]
发表于 2013-06-24 14:30 |只看该作者
回复 7# grshrd49


    for my $ref (@map1) {
         for (@$ref) {print}
    }

论坛徽章:
1
15-16赛季CBA联赛之北控
日期:2016-08-05 14:22:52
9 [报告]
发表于 2013-06-24 19:40 |只看该作者
数组的数组,学习了,
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP