免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2727 | 回复: 12

数组嵌套问题, 求大神帮忙,急 [复制链接]

论坛徽章:
0
发表于 2016-12-07 23:44 |显示全部楼层
6f41f212-e96e-11e2-b0af-001517a36ca5: HEY h ey HEY hh ey
0d77a328-e427-11e2-b0af-001517a36ca5: ALLMAN aa l m ax n ALLMAN ao l m ax n
65defa18-e5de-11e2-a387-001517a3798d: OF ah v OF ax v; YOUR y ao r YOUR y ax r
39cbd594-e57e-11e2-87b7-001517a331f1: FOR f ax r FOR f ao r
b92e5823-ea7f-11e2-b869-001517a36ded: WHO h uw WHO hh uw
8eb46f0a-e9b5-11e2-a387-001517a3798d: WI d ah b ax l y uw ay WI w ay
eb993574-e9d3-11e2-b869-001517a36ded: WHAT w aa t WHAT w ah t; YEARS y ih r z YEARS y iy r z; WERE w er r WERE w ax r; THE dh ax THE dh ah; HOLOCAUST h aa l ah k ao s t HOLOCAUST hh aa l ax k ao s t
68c77618-e7ed-11e2-b0af-001517a36ca5: HUT h ah t HUT hh ah t; TEXAS t eh k s ax s TEXAS t eh k s ih s
dedf0820-e808-11e2-b0af-001517a36ca5: THE dh ax THE dh iy; OF ah v OF ax v; THE dh ax THE dh ah; WHAT w aa t WHAT hh w ah t


如上面的文件,格式为 ID: file1_word1 \t phone1 \t file2_word1 \t phone2;\s file1_word2 \t phone1 \t file2_word2 \t phone2,  phone 里面是用空格隔开。

想找出 满足条件的 utt ID, 条件为 每个分号间的两个单词的 phone 的个数是一样, 比如 第一条,h ey  = hh ey , 则第一个满足条件,
最后一个 w aa t  <  hh w ah t, 则最后一条 不满足条件。


我写的代码,老是循环不对,哈希里面多了一部分不满足条件的, 求改正。

my %samephCountUtt_hash;
my @diffphCountUtts;

foreach my $dtline(@dtLines)
{
chomp($dtline);
my ($uttID, $otherstr)=split/:\t+/, $dtline;
my @wdphCPs=split/\;/, $otherstr;

foreach my $wdphCP(@wdphCPs)
{
  my @parts=split/\t+/,$wdphCP;
  my @ttsPhones=split/\s+/, $parts[1];
  my @srPhones=split/\s+/, $parts[3];
  
  unless ($#ttsPhones eq $#srPhones)
  {
   $diffcount++;
   push @diffphCountUtts, $dtline;
   last;
  }
  $samephCountUtt_hash{$uttID}=$otherstr;
}

}

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
发表于 2016-12-08 13:41 |显示全部楼层
本帖最后由 sunzhiguolu 于 2016-12-08 13:42 编辑

有些地方不是很明白, 请解释下, 如下面这条:
65defa18-e5de-11e2-a387-001517a3798d: OF ah v OF ax v; YOUR y ao r YOUR y ax r
带有背景色的是否为 phone 部分? 如果是的话, 那么这条记录是否满足条件? 请给出比较依据。

如果方便的话, 给出示例数据的预期结果.

求职 : 软件工程师
论坛徽章:
3
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
发表于 2016-12-11 22:56 |显示全部楼层
phone 是什么东西?电话,电话号码?

论坛徽章:
0
发表于 2017-02-24 18:33 |显示全部楼层
回复 3# 104359176

Sorry, 回复晚了, 在这里是发音的意思。

论坛徽章:
0
发表于 2017-02-24 18:39 |显示全部楼层
回复 2# sunzhiguolu


哦, 不好意思,下面的结构就是: 标蓝的就是单词, 标绿的就是发音, 标黄的为句子ID。  表示这条句子里面有两个单词: OF YOUR, 但是每个单词有两个发音做为对比。

65defa18-e5de-11e2-a387-001517a3798d: OF ah v OF ax v; YOUR y ao r YOUR y ax r

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
发表于 2017-02-24 18:52 |显示全部楼层
回复 5# TrishaTie
能否将你的要求具体说下,希望得到一个怎样的结果?

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
发表于 2017-02-24 18:55 |显示全部楼层
你回帖的时间间隔可够长的啊,哈哈哈。

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
发表于 2017-02-24 23:21 |显示全部楼层
maybe
  1. 6f41f212-e96e-11e2-b0af-001517a36ca5
  2. 0d77a328-e427-11e2-b0af-001517a36ca5
  3. 65defa18-e5de-11e2-a387-001517a3798d
  4. 39cbd594-e57e-11e2-87b7-001517a331f1
  5. b92e5823-ea7f-11e2-b869-001517a36ded
  6. eb993574-e9d3-11e2-b869-001517a36ded
  7. 68c77618-e7ed-11e2-b0af-001517a36ca5
复制代码


perl abc.pl > OK
  1. #!/usr/bin/perl
  2. use 5.010;

  3. while (<DATA>) {
  4.     my ( $id, $words ) = split ':';
  5.     my @word = split ';', $words;
  6.     my $OK = 1;
  7.     for (@word) {
  8.         my ( undef, $A, $B ) = split /\s*[A-Z]+\s*/;
  9.         my $X = split /\s+/, $A;
  10.         my $Y = split /\s+/, $B;
  11.         $OK--, last if $X != $Y;
  12.     }
  13.     say $id if $OK;
  14.     # or print line if ok
  15.     # print if $OK;
  16. }

  17. __DATA__
  18. 6f41f212-e96e-11e2-b0af-001517a36ca5: HEY h ey HEY hh ey
  19. 0d77a328-e427-11e2-b0af-001517a36ca5: ALLMAN aa l m ax n ALLMAN ao l m ax n
  20. 65defa18-e5de-11e2-a387-001517a3798d: OF ah v OF ax v; YOUR y ao r YOUR y ax r
  21. 39cbd594-e57e-11e2-87b7-001517a331f1: FOR f ax r FOR f ao r
  22. b92e5823-ea7f-11e2-b869-001517a36ded: WHO h uw WHO hh uw
  23. 8eb46f0a-e9b5-11e2-a387-001517a3798d: WI d ah b ax l y uw ay WI w ay
  24. eb993574-e9d3-11e2-b869-001517a36ded: WHAT w aa t WHAT w ah t; YEARS y ih r z YEARS y iy r z; WERE w er r WERE w ax r; THE dh ax THE dh ah; HOLOCAUST h aa l ah k ao s t HOLOCAUST hh aa l ax k ao s t
  25. 68c77618-e7ed-11e2-b0af-001517a36ca5: HUT h ah t HUT hh ah t; TEXAS t eh k s ax s TEXAS t eh k s ih s
  26. dedf0820-e808-11e2-b0af-001517a36ca5: THE dh ax THE dh iy; OF ah v OF ax v; THE dh ax THE dh ah; WHAT w aa t WHAT hh w ah t
复制代码

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
发表于 2017-02-25 10:56 |显示全部楼层
回复 7# sunzhiguolu

再等二个月...

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
发表于 2017-02-26 13:51 |显示全部楼层
本帖最后由 sunzhiguolu 于 2017-02-26 13:54 编辑

回复 9# jason680
我先学习一下 8 楼大神的代码,不等楼主回复了。我的理解能力有限,不知到大神您老人家是否理解了。


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP