Skip to content

Commit 264dd81

Browse files
Create 6-Zigzag-Conversion.java
1 parent 3721565 commit 264dd81

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

java/6-Zigzag-Conversion.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
//We check whether we are at the diagonal or not using a boolean and increment the pointer accordingly.
2+
3+
class Solution {
4+
public String convert(String s, int row) {
5+
if (row==1) return s;
6+
StringBuilder sb = new StringBuilder();
7+
for (int i = 0; i<row; i++) {
8+
int j = i;
9+
if (i==0 || i==row-1) {
10+
while (j<s.length()) {
11+
sb.append(s.charAt(j));
12+
j += 2*(row-1);
13+
}
14+
} else {
15+
boolean diagonal = false;
16+
while (j<s.length()) {
17+
if (!diagonal) {
18+
sb.append(s.charAt(j));
19+
j+=2*(row-i-1);
20+
diagonal = true;
21+
} else {
22+
sb.append(s.charAt(j));
23+
j+=2*i;
24+
diagonal = false;
25+
}
26+
}
27+
}
28+
}
29+
return sb.toString();
30+
}
31+
}

0 commit comments

Comments
 (0)