生活随笔
收集整理的這篇文章主要介紹了
一题多解 面试题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近在其他論壇上看到幾個網友的面試題,這些天,QQ群內的人都在討論怎么解答才最簡單,下面列出題目:
文件a: ? ? ? ? ? ? ? ?文件b:
a b c ? ? ? ? ? ? ? ? ?a b c
b c a ? ? ? ? ? ? ? ? ?b c a
c b a ? ? ? ? ? ? ? ? ?c a b
a a a ? ? ? ? ? ? ? ? ?1 1 1
b b b ? ? ? ? ? ? ? ? ?2 2 2
c c c ? ? ? ? ? ? ? ? ?3 3 3
要求合并2個文件如下:
a b c a b c
b c a b c a
c a b c a b
a a a 1 1 1
b b b 2 2 2
c c c 3 3 3
?最簡單的答案看下面:
[root@Virtual?~]#?paste?-d?'?'?a?b?a?b?c?a?b?c?b?c?a?b?c?a?c?b?a?c?a?b?a?a?a?1?1?1?b?b?b?2?2?2?c?c?c?3?3?3?awk大牛給的答案:
[root@Virtual?~]#?awk?'NR==FNR{a[NR]=$0}NR>FNR{print?a[FNR],$0}'?a?b?a?b?c?a?b?c?b?c?a?b?c?a?c?b?a?c?a?b?a?a?a?1?1?1?b?b?b?2?2?2?c?c?c?3?3?3?shell版本的答案:
?
cat?test.sh??while?read?a?b?c?do??????????while?read?d?e?f??????????do?????????????????echo?"$d?$e?$f"|awk?-v?a=$a?-v?b=$b?-v?c=$c?-F'\n'?'{print?$0,""a"",""b"",""c""}'??????????????????sed?-i?'1d'?a?????????????????break?????????done?<?a?done?<??b??輸出結果:?./test.sh????a?b?c?a?b?c?b?c?a?b?c?a?c?a?b?c?a?b?a?a?a?1?1?1?b?b?b?2?2?2?c?c?c?3?3?3?最后附上我的python的答案:
[root@Virtual?~]#?vi?test.py?[root@Virtual?~]#?python?test.py?a?b?c?a?b?c?b?c?a?b?c?a?c?b?a?c?a?b?a?a?a?1?1?1?b?b?b?2?2?2?c?c?c?3?3?3?[root@Virtual?~]#?cat?test.py?#!/usr/bin/env?python?import?linecache?f=open('/root/a')?LineCount=len(f.readlines())??for?i?in?range(1,LineCount+1):?????????a=linecache.getline("/root/a",i)?????????b=linecache.getline("/root/b",i)??????????print?a.strip(),b.strip()?[root@Virtual?~]#??? 這個題目的答案還有許多的解答方法,比如用sed估計也可以,用perl也沒問題。。。如果你知道,請不吝賜教。。。
本文轉自你是路人甲還是霍元甲博客51CTO博客,原文鏈接http://blog.51cto.com/world77/654720如需轉載請自行聯系原作者
world77
總結
以上是生活随笔為你收集整理的一题多解 面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。