Skip to content

Commit dada296

Browse files
committed
二刷6
1 parent 8dfbe04 commit dada296

File tree

4 files changed

+76
-1
lines changed

4 files changed

+76
-1
lines changed

docs/0006-zigzag-conversion.adoc

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,32 @@ Y A H R
4242
P I
4343
----
4444

45+
== 思路分析
4546

4647
[[src-0006]]
48+
[tabs]
49+
====
50+
一刷::
51+
+
52+
--
4753
[{java_src_attr}]
4854
----
4955
include::{sourcedir}/_0006_ZigZagConversion.java[tag=answer]
5056
----
57+
--
58+
59+
二刷::
60+
+
61+
--
62+
[{java_src_attr}]
63+
----
64+
include::{sourcedir}/_0006_ZigZagConversion_2.java[tag=answer]
65+
----
66+
--
67+
====
68+
69+
== 参考资料
70+
71+
. https://leetcode.cn/problems/zigzag-conversion/solutions/21610/zzi-xing-bian-huan-by-jyd/?envType=study-plan-v2&envId=selected-coding-interview[6. Z 字形变换 - 巧设 flag ,清晰图解^]
72+
. https://leetcode.cn/problems/zigzag-conversion/solutions/1298127/z-zi-xing-bian-huan-by-leetcode-solution-4n3u/?envType=study-plan-v2&envId=selected-coding-interview[6. Z 字形变换 - 官方题解^]
5173

logbook/202406.adoc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -686,6 +686,10 @@
686686
|{doc_base_url}/0160-intersection-of-two-linked-lists.adoc[题解]
687687
|✅ 双指针,两个链表逻辑拼接
688688

689+
|{counter:codes}
690+
|{leetcode_base_url}/zigzag-conversion/[6. ZigZag Conversion^]
691+
|{doc_base_url}/0006-zigzag-conversion.adoc[题解]
692+
|❌ 注意审题,看题!
689693

690694
|===
691695

src/main/java/com/diguage/algo/leetcode/_0006_ZigZagConversion.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
* @since 2019-07-14 18:20
5252
*/
5353
public class _0006_ZigZagConversion {
54-
// tag::answer[]
54+
// tag::answer[]
5555
/**
5656
* Runtime: 5 ms, faster than 73.81% of Java online submissions for ZigZag Conversion.
5757
*
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.diguage.algo.leetcode;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
public class _0006_ZigZagConversion_2 {
7+
// tag::answer[]
8+
9+
/**
10+
* @author D瓜哥 · https://www.diguage.com
11+
* @since 2024-09-18 20:27:18
12+
*/
13+
public String convert(String s, int numRows) {
14+
if (numRows < 2) {
15+
return s;
16+
}
17+
List<StringBuilder> sbs = new ArrayList<>(numRows);
18+
for (int i = 0; i < numRows; i++) {
19+
sbs.add(new StringBuilder());
20+
}
21+
int i = 0, flag = -1;
22+
for (char c : s.toCharArray()) {
23+
sbs.get(i).append(c);
24+
if (i == 0 || i == numRows - 1) {
25+
flag = -flag;
26+
}
27+
i += flag;
28+
}
29+
StringBuilder result = new StringBuilder();
30+
for (StringBuilder sb : sbs) {
31+
result.append(sb);
32+
}
33+
return result.toString();
34+
}
35+
// end::answer[]
36+
37+
public static void main(String[] args) {
38+
_0006_ZigZagConversion_2 solution = new _0006_ZigZagConversion_2();
39+
40+
String example3 = solution.convert("AB", 1);
41+
System.out.println(example3 + " " + "AB".equals(example3));
42+
43+
String example1 = solution.convert("PAYPALISHIRING", 3);
44+
System.out.println(example1 + " " + "PAHNAPLSIIGYIR".equals(example1));
45+
46+
String example2 = solution.convert("PAYPALISHIRING", 4);
47+
System.out.println(example2 + " " + "PINALSIGYAHRPI".equals(example2));
48+
}
49+
}

0 commit comments

Comments
 (0)