找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5674|回复: 25
收起左侧

[Google] 热腾腾谷歌电面

[复制链接]

1105

主题

177

精华

3441

积分

神级会员

Rank: 7Rank: 7Rank: 7

积分
3441
发表于 1-29-2017 11:29 PM | 显示全部楼层 |阅读模式

亲!马上注册或者登录会查看更多内容!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 Sophia 于 1-29-2017 11:31 PM 编辑 + \: {( W  e* L1 n* F+ |/ @/ N
9 p% c3 l! W$ l" X9 m3 `8 I/ A# I7 K
Write code to traverse a NxM matrix in a zig-zag fashion

1175

主题

200

精华

3740

积分

神级会员

Rank: 7Rank: 7Rank: 7

积分
3740
发表于 1-29-2017 11:29 PM | 显示全部楼层

# assume due to feedbacks, zig-zag means 
" d/ j" G2 h! f) Y! D# diagonals starting from upper-left, going down until 
/ u9 P4 G7 K, I& W# lower and if at bottom-left go to bottom-right 
" ^' l, n& d" y* }* t* C# printing the elements into up-left diagonale+ h# m* B% Z) e$ y
#
6 i6 u/ j8 z1 V- x, U( D# e.g- the desired order in this case:# D; _5 W* N9 r) U) `
# [[0, 1, 2, 3, 4],: Y0 U1 @$ |+ P/ m, A
#  [5, 6, 7, 8, 9],) @& H2 Z' f* _
#  [a, b, c, d, e]] 
& d  I( \6 G$ }7 p# o# is: 0, 5, 1, a, 6, 2, b, 7, 3, c, 8, 4, d, 9, e
- p3 K3 E3 u) |1 Q/ r- A* I- W# 
- F# Y$ F6 u% I% t# or in this case:# R# q! }9 Z, X, E0 |& B- L
# [[0, 1]
7 P& e. c* b, B- J#  [2, 3]. d+ l; M& B! P3 ^, I* ~6 L: n
#  [4, 5]]% a- S) f% B5 e+ l
# 0, 2, 1, 4, 3, 5) a) V/ b7 V7 z. H0 s+ q
#
1 ]0 I3 W9 n! m8 ^# in python3:
9 C3 p2 K7 k7 N* `7 b: i# gdef traverse(matrix):
/ X7 i5 m4 u  k8 v$ j6 Y    cols = len(matrix[0])
" p2 d! h; s0 F1 q: ], s5 ]9 A+ p    rows = len(matrix)
! R8 v9 X( F. I. a  A# T+ |3 w    print('matrix {0}:'.format(matrix), end=' ')
1 j7 j; E/ a3 @* y2 _
- ?* n, A! Z; l6 e8 ?    for i in range (0, rows):
' L7 j- @% g6 b/ t/ F1 T        for j in range (0, min(i + 1, cols)):
: j. h/ R& q6 z8 ]! b- S            print(matrix[i - j][j], end= ' ')
1 @6 {" f3 d0 ^3 ?& ^    
, Y& ^9 ~  C6 G4 ]) z5 E( S    for j in range (1, cols):" h  R% ^8 U  L
        for i in range (0, min(cols - j, rows)):
% v: ?: G- ~1 u3 G; D" ^9 D            print(matrix[rows - i - 1][j + i], end=' ')
7 W5 T" T% J/ G6 z' u8 B* N
3 a8 S0 B! v# k0 P; `7 }. P' \    print()$ O: v0 S4 p& t
        5 k* m1 S' [4 X1 |3 K2 E, G
traverse([[1,2,3],[4,5,6],[7,8,9]])4 e! V( a/ K1 w
traverse([[0,1,2,3,4],[5,6,7,8,9],[10,11,12,13,14]]): x5 A/ a! B" E* @: G
traverse([[0,1],[2,3],[4,5]])
) j  ^' s% m2 @. B' \# jtraverse([[1],[2],[3]]). I; G( w+ G, E) P3 S2 c
traverse([[1, 2, 3]])
* f; b: ?1 s) h; o. [0 Z5 b0 i' k; V0 q/ p3 _
#output:
7 o# v- M( [2 }4 r7 N1 y: J1 j#matrix [[1, 2, 3], [4, 5, 6], [7, 8, 9]]: 1 4 2 7 5 3 8 6 9 / g0 `# i! H5 P9 u& }
#matrix [[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14]]: 0 5 1 10 6 2 11 7 3 12 8 4 13 9 14 
7 l% c: Z( O* a0 q  j& w( [#matrix [[0, 1], [2, 3], [4, 5]]: 0 2 1 4 3 5 
( p: y' ^7 a. k: k& u#matrix [[1], [2], [3]]: 1 2 3 
5 [' j6 v' r0 U#matrix [[1, 2, 3]]: 1 2 3

回复 支持 反对

使用道具 举报

1198

主题

184

精华

3704

积分

神级会员

Rank: 7Rank: 7Rank: 7

积分
3704
发表于 1-29-2017 11:29 PM | 显示全部楼层

Yeah need more details...define zig-zag fashion...

回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表