一题多解 面试题

简介:

最近在其他论坛上看到几个网友的面试题,这些天,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

 最简单的答案看下面:

 
  1. [root@Virtual ~]# paste -d ' ' a b 
  2. a b c a b c 
  3. b c a b c a 
  4. c b a c a b 
  5. a a a 1 1 1 
  6. b b b 2 2 2 
  7. c c c 3 3 3 

awk大牛给的答案:

 
  1. [root@Virtual ~]# awk 'NR==FNR{a[NR]=$0}NR>FNR{print a[FNR],$0}' a b 
  2. a b c a b c 
  3. b c a b c a 
  4. c b a c a b 
  5. a a a 1 1 1 
  6. b b b 2 2 2 
  7. c c c 3 3 3 

shell版本的答案:

 

 
  1. cat test.sh  
  2. while read a b c 
  3. do  
  4.         while read d e f  
  5.         do 
  6.                 echo "$d $e $f"|awk -v a=$a -v b=$b -v c=$c -F'\n' '{print $0,""a"",""b"",""c""}'  
  7.                 sed -i '1d' a 
  8.                 break 
  9.         done < a 
  10. done <  b 
  11.  
  12. 输出结果: 
  13. ./test.sh    
  14. a b c a b c 
  15. b c a b c a 
  16. c a b c a b 
  17. a a a 1 1 1 
  18. b b b 2 2 2 
  19. c c c 3 3 3 

最后附上我的python的答案:

 
  1. [root@Virtual ~]# vi test.py 
  2. [root@Virtual ~]# python test.py 
  3. a b c a b c 
  4. b c a b c a 
  5. c b a c a b 
  6. a a a 1 1 1 
  7. b b b 2 2 2 
  8. c c c 3 3 3 
  9. [root@Virtual ~]# cat test.py 
  10. #!/usr/bin/env python 
  11. import linecache 
  12. f=open('/root/a'
  13. LineCount=len(f.readlines()) 
  14.  
  15. for i in range(1,LineCount+1): 
  16.         a=linecache.getline("/root/a",i) 
  17.         b=linecache.getline("/root/b",i) 
  18.  
  19.         print a.strip(),b.strip() 
  20. [root@Virtual ~]# 

   这个题目的答案还有许多的解答方法,比如用sed估计也可以,用perl也没问题。。。如果你知道,请不吝赐教。。。

本文转自你是路人甲还是霍元甲博客51CTO博客,原文链接http://blog.51cto.com/world77/654720如需转载请自行联系原作者


world77

相关文章
|
JavaScript 前端开发 C语言
leetcode每日一题 2021/4/1 1006. 笨阶乘
leetcode每日一题 2021/4/1 1006. 笨阶乘
44 0
蓝桥杯:2019 国赛 例题:求值
蓝桥杯:2019 国赛 例题:求值
79 0
|
8月前
|
C++ 算法 存储
力扣 C++|一题多解之动态规划专题(2)
力扣 C++|一题多解之动态规划专题(2)
74 0
力扣 C++|一题多解之动态规划专题(2)
|
8月前
|
算法 C++ 机器人
力扣 C++|一题多解之动态规划专题(1)
力扣 C++|一题多解之动态规划专题(1)
67 0
力扣 C++|一题多解之动态规划专题(1)
|
8月前
|
机器学习/深度学习
蓝桥杯-2/14天-完全平方数【另类思路】
蓝桥杯-2/14天-完全平方数【另类思路】
|
算法
代码随想录Day20 回溯算法 LeetCode77 组合问题
代码随想录Day20 回溯算法 LeetCode77 组合问题
42 0
每日刷题|回溯法解决组合问题
每日刷题|回溯法解决组合问题
|
算法 C++
【每日算法Day 71】面试官想考我这道位运算题,结果我给出了三种解法
【每日算法Day 71】面试官想考我这道位运算题,结果我给出了三种解法
115 0
|
算法
【每日挠头算法题】Acwing 756. 蛇形矩阵 —— 巧妙解法
【每日挠头算法题】Acwing 756. 蛇形矩阵 —— 巧妙解法
153 0
【每日挠头算法题】Acwing 756. 蛇形矩阵 —— 巧妙解法

热门文章

最新文章