首页 > 其他 > 详细

源于一个文字游戏的题目

时间:2015-01-06 00:52:25      阅读:562      评论:0      收藏:0      [点我收藏+]

独立博客地址:http://cxh.me/2015/01/05/a-word-puzzle/

起源是这样一道题目:

技术分享

于是想到通过word dict来算一下:

先去下载了中文词库:

git clone git@github.com:ling0322/webdict.git 

然后去掉词频信息:

awk  ‘{ if (length($1)==2) print $1}‘ webdict_with_freq.txt >webdict.txt

先按照出现位置来正则过滤候选集,并且去掉大/日/风/思四个字:

grep ‘^大.*‘ webdict.txt| sed ‘s/大//g‘ >da.txt
grep ‘^日.*‘ webdict.txt| sed ‘s/日//g‘ >ri.txt
grep ‘.*风$‘ webdict.txt| sed ‘s/风//g‘ >feng.txt
grep ‘.*思$‘ webdict.txt| sed ‘s/思//g‘ >si.txt  

之后的事情就很有意思了,每次join两个文件,因为大/日/风/思四个字是没有交集的,所以结果就是要求的字:

comm -12 <(sort da.txt|uniq ) <(sort ri.txt|uniq ) >da_ri.txt
comm -12 <(sort feng.txt|uniq ) <(sort da_ri.txt|uniq ) >da_ri_feng.txt
comm -12 <(sort si.txt|uniq ) <(sort da_ri_feng.txt|uniq ) >da_ri_feng_si.txt

最后的凶手答案只有一个:

技术分享

谢谢观看~。

参考文献:

1 ] LINUX Shell 下求两个文件交集和差集的办法, http://blog.csdn.net/autofei/article/details/6579320


源于一个文字游戏的题目

原文:http://blog.csdn.net/forever_wind/article/details/42440315

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!