File tree Expand file tree Collapse file tree 4 files changed +76
-1
lines changed
src/main/java/com/diguage/algo/leetcode Expand file tree Collapse file tree 4 files changed +76
-1
lines changed Original file line number Diff line number Diff line change @@ -42,10 +42,32 @@ Y A H R
4242P I
4343----
4444
45+ == 思路分析
4546
4647[[src-0006]]
48+ [tabs]
49+ ====
50+ 一刷::
51+ +
52+ --
4753[{java_src_attr}]
4854----
4955include::{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
Original file line number Diff line number Diff line change 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
Original file line number Diff line number Diff line change 5151 * @since 2019-07-14 18:20
5252 */
5353public 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 *
Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments