package string; import java.util.List; /** * @ProjectName: leetcode * @Package: string * @ClassName: String6 * @Author: markey * @Description:6. Z å形忢 * å°ä¸ä¸ªç»å®åç¬¦ä¸²æ ¹æ®ç»å®çè¡æ°ï¼ä»¥ä»ä¸å¾ä¸ãä»å·¦å°å³è¿è¡Â Z åå½¢æåã * * æ¯å¦è¾å ¥å符串为 "LEETCODEISHIRING"Â è¡æ°ä¸º 3 æ¶ï¼æåå¦ä¸ï¼ * * L C I R * E T O E S I I G * E D H N * ä¹åï¼ä½ çè¾åºéè¦ä»å·¦å¾å³éè¡è¯»åï¼äº§çåºä¸ä¸ªæ°çåç¬¦ä¸²ï¼æ¯å¦ï¼"LCIRETOESIIGEDHN"ã * * è¯·ä½ å®ç°è¿ä¸ªå°å符串è¿è¡æå®è¡æ°åæ¢ç彿°ï¼ * * string convert(string s, int numRows); * 示ä¾Â 1: * * è¾å ¥: s = "LEETCODEISHIRING", numRows = 3 * è¾åº: "LCIRETOESIIGEDHN" * 示ä¾Â 2: * * è¾å ¥: s = "LEETCODEISHIRING", numRows = 4 * è¾åº: "LDREOEIIECIHNTSG" * è§£é: * * L D R * E O E I I * E C I H N * T S G * * æ¥æºï¼åæ£ï¼LeetCodeï¼ * 龿¥ï¼https://leetcode-cn.com/problems/zigzag-conversion * è使å½é¢æ£ç½ç»ææãåä¸è½¬è½½è¯·èç³»å®æ¹ææï¼éåä¸è½¬è½½è¯·æ³¨æåºå¤ã * @Date: 2020/4/27 22:29 * @Version: 1.0 */ public class String6 { public String convert(String s, int numRows) { if (numRows == 1) { return s; } boolean direction = true; // ture表示åä¸è¯»å int row = 0; // 表示å½åè¡æ° StringBuilder[] sbs = new StringBuilder[numRows]; for (int i = 0; i < sbs.length; i++) { sbs[i] = new StringBuilder(); } // éè¦è¯»ån个å符 for (int i = 0; i < s.length(); i++) { sbs[row].append(s.charAt(i)); if (row == 0) { direction = true; } if (row == numRows-1) { direction = false; } if (direction) { row++; } else { row--; } } StringBuilder res = new StringBuilder(); for (int i = 0; i < sbs.length; i++) { res.append(sbs[i]); } return res.toString(); } }