找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

[Google] 热腾腾谷歌电面

[复制链接]

1117

主题

178

精华

3488

积分

神级会员

Rank: 7Rank: 7Rank: 7

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

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

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

x
本帖最后由 Sophia 于 1-29-2017 11:31 PM 编辑 ; C. T3 Z$ P3 ]* \6 {8 t8 s& B

; F6 |4 D& E+ ?$ r" s8 RWrite code to traverse a NxM matrix in a zig-zag fashion

1183

主题

200

精华

3760

积分

神级会员

Rank: 7Rank: 7Rank: 7

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

# assume due to feedbacks, zig-zag means , M0 ~, P6 k* t( ^/ s; ]
# diagonals starting from upper-left, going down until 
1 ~  R/ p$ @2 b! a- i% w, q% m& N% ^# lower and if at bottom-left go to bottom-right 
4 R! w  J$ _3 I0 h" p/ @: ?# printing the elements into up-left diagonale
; {% z* K6 C/ q) Q( J: ]# f7 F7 r#  c" r$ j* s/ r% H$ O$ R
# e.g- the desired order in this case:
1 K0 H4 x: [$ T& A& Q3 l# [[0, 1, 2, 3, 4],
6 t, F0 Q8 n# A) C7 q3 |$ \#  [5, 6, 7, 8, 9],
7 Q6 d/ u) p  _, q#  [a, b, c, d, e]] 
: s/ A+ w# q2 P# is: 0, 5, 1, a, 6, 2, b, 7, 3, c, 8, 4, d, 9, e0 C2 u5 ^* i, `( z+ y
# 3 n0 d7 y3 g; j* ]
# or in this case:
- ^$ m4 o9 h2 `( r  B# [[0, 1]
* `' @2 ]' G5 M2 m( [#  [2, 3]& w! b  B0 l6 ?- h7 {7 k
#  [4, 5]]
$ @, r% u9 o  n; z% n  V/ {# 0, 2, 1, 4, 3, 5
. x3 X; W: I0 x#
9 `4 ]  K5 V) e9 R$ t$ c: s0 P# in python3:
6 t0 w+ T' ~: Z: z4 wdef traverse(matrix):$ V- Z' i, Q6 J& `- z' z4 n
    cols = len(matrix[0])
* N( z$ O8 e! t8 J# E8 ]; m    rows = len(matrix)
# x4 M8 Y9 r) e    print('matrix {0}:'.format(matrix), end=' ')
2 c. Z# M. T$ X) N+ [3 Z+ A7 ~- P: B  b7 D
    for i in range (0, rows):
; q8 b; T' D$ B  B. h! y! t+ O        for j in range (0, min(i + 1, cols)):3 l8 g: Y) I9 z% T# o. }/ `$ [
            print(matrix[i - j][j], end= ' ')! V# \4 n: _# _2 K
    
7 Y! p3 o2 K/ {6 F+ s    for j in range (1, cols):
+ P( X) e  s2 S7 y, v3 ]        for i in range (0, min(cols - j, rows)):
& u  g: s8 W% P7 p" \  `            print(matrix[rows - i - 1][j + i], end=' ')
  [: O7 v9 l" }# q
0 l$ v5 X( X% ^$ R    print()1 K$ \* V  _5 f& l4 C. L
        ! P; k  O$ u% l+ O
traverse([[1,2,3],[4,5,6],[7,8,9]]); A2 `+ Z, J% l1 C% D! F9 }
traverse([[0,1,2,3,4],[5,6,7,8,9],[10,11,12,13,14]])4 n- [% E) P" k" _) ^
traverse([[0,1],[2,3],[4,5]])
/ F+ N5 g. m6 i- E3 c, itraverse([[1],[2],[3]])
* o; ]# `+ J# O+ y9 ntraverse([[1, 2, 3]])
. p' f4 Z+ ~$ y: \( e0 q, D. [; Z: [" ?% ?  J# b
#output:" ~0 F" n+ l+ S& H
#matrix [[1, 2, 3], [4, 5, 6], [7, 8, 9]]: 1 4 2 7 5 3 8 6 9 
7 J- `; u4 G, S$ I#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 ^: i; P8 S: h) ^! e#matrix [[0, 1], [2, 3], [4, 5]]: 0 2 1 4 3 5 , U7 w8 U( d8 r
#matrix [[1], [2], [3]]: 1 2 3 ' y& x0 ]1 d: {& S  K' k4 R
#matrix [[1, 2, 3]]: 1 2 3

回复 支持 反对

使用道具 举报

1206

主题

184

精华

3720

积分

神级会员

Rank: 7Rank: 7Rank: 7

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

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

回复 支持 反对

使用道具 举报

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

本版积分规则

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