File tree 2 files changed +32
-0
lines changed
2 files changed +32
-0
lines changed Original file line number Diff line number Diff line change 15
15
| 2 | [ Add Two Numbers] ( https://leetcode.com/problems/add-two-numbers ) | [ ![ Java] ( assets/java.png )] ( src/AddTwoNumbers.java ) | |
16
16
| 3 | [ Longest Substring Without Repeating Characters] ( https://leetcode.com/problems/longest-substring-without-repeating-characters ) | [ ![ Java] ( assets/java.png )] ( src/LongestSubstringWithoutRepeatingCharacters.java ) | |
17
17
| 5 | [ Longest Palindromic Substring] ( https://leetcode.com/problems/longest-palindromic-substring ) | [ ![ Java] ( assets/java.png )] ( src/LongestPalindromicSubstring.java ) | |
18
+ | 6 | [ Zigzag Conversion] ( https://leetcode.com/problems/zigzag-conversion ) | [ ![ Java] ( assets/java.png )] ( src/ZigZagConversion.java ) | |
18
19
| 7 | [ Reverse Integer] ( https://leetcode.com/problems/reverse-integer/ ) | [ ![ Java] ( assets/java.png )] ( src/ReverseInteger.java ) [ ![ Python] ( assets/python.png )] ( python/reverse_integer.py ) | [ ![ java-yt] ( assets/java-yt.png )] ( https://youtu.be/7bOhyl5lWjI ) [ ![ python-yt] ( assets/python-yt.png )] ( https://youtu.be/lmLG30TLcSg ) |
19
20
| 9 | [ PalindromeNumber] ( https://leetcode.com/problems/palindrome-number/ ) | [ ![ Java] ( assets/java.png )] ( src/PalindromeNumber.java ) [ ![ Python] ( assets/python.png )] ( python/palindrome_number.py ) | |
20
21
| 13 | [ Roman To Integer] ( https://leetcode.com/problems/roman-to-integer/ ) | [ ![ Java] ( assets/java.png )] ( src/RomanToInteger.java ) [ ![ Python] ( assets/python.png )] ( python/roman_to_integer.py ) | [ ![ java-yt] ( assets/java-yt.png )] ( https://youtu.be/BCue_mO_81A ) [ ![ python-yt] ( assets/python-yt.png )] ( https://youtu.be/8h_yGTNvKMA ) |
Original file line number Diff line number Diff line change
1
+ // https://leetcode.com/problems/zigzag-conversion
2
+ // T: O(|s|)
3
+ // S: O(|s|)
4
+
5
+ public class ZigZagConversion {
6
+ public static String convert (String s , int numRows ) {
7
+ if (numRows == 1 ) return s ;
8
+ final StringBuilder result = new StringBuilder ();
9
+ final int jumpSize = (numRows - 1 ) * 2 ;
10
+
11
+ // first row
12
+ for (int i = 0 ; i < s .length () ; i += jumpSize ) {
13
+ result .append (s .charAt (i ));
14
+ }
15
+
16
+ for (int row = 1 ; row < numRows - 1 ; row ++) {
17
+ int [] jumps = {jumpSize - 2 * row , 2 * row };
18
+ for (int i = row , k = 0 ; i < s .length () ; k ^= 1 ) {
19
+ result .append (s .charAt (i ));
20
+ i += jumps [k ];
21
+ }
22
+ }
23
+
24
+ // last row
25
+ for (int i = numRows - 1 ; i < s .length () ; i += jumpSize ) {
26
+ result .append (s .charAt (i ));
27
+ }
28
+
29
+ return result .toString ();
30
+ }
31
+ }
You can’t perform that action at this time.
0 commit comments