File tree Expand file tree Collapse file tree 2 files changed +20
-22
lines changed Expand file tree Collapse file tree 2 files changed +20
-22
lines changed Original file line number Diff line number Diff line change
1
+ Sep 13, 2024
2
+
3
+ * re-solve "6. Zigzag Conversion"
4
+
1
5
Sep 12, 2024
2
6
3
7
* re-solve "14. Longest Common Prefix"
Original file line number Diff line number Diff line change 1
1
class Solution :
2
2
def convert (self , s : str , num_rows : int ) -> str :
3
- if num_rows < = 1 :
3
+ if num_rows = = 1 :
4
4
return s
5
5
6
- result = []
6
+ n = len (s )
7
+ result : list [str ] = []
7
8
8
- first , second = num_rows * 2 - 2 , 0
9
-
10
- start = 0
11
- while start < num_rows and start < len (s ):
12
- i = start
9
+ step = (num_rows - 1 ) * 2
13
10
11
+ # first row
12
+ for i in range (0 , n , step ):
14
13
result .append (s [i ])
15
14
16
- while True :
17
- i += first
18
-
19
- if first and i < len (s ):
20
- result .append (s [i ])
21
-
22
- i += second
15
+ # middle rows
16
+ for r in range (1 , num_rows - 1 ):
17
+ for i in range (r , n , step ):
18
+ result .append (s [i ])
23
19
24
- if second and i < len (s ):
25
- result .append (s [i ])
20
+ j = i + (step - r * 2 )
21
+ if j < n :
22
+ result .append (s [j ])
26
23
27
- if i >= len (s ):
28
- break
29
-
30
- start += 1
31
- first -= 2
32
- second += 2
24
+ # last row
25
+ for i in range (num_rows - 1 , n , step ):
26
+ result .append (s [i ])
33
27
34
28
return "" .join (result )
You can’t perform that action at this time.
0 commit comments