标签:class 输出 boolean ima har for new 技术分享 img
一、题目
1、审题:
2、分析:
将所给字符串按照之字型展开成 n 行,展开后按照行将其输出,求组成的新字符串。
二、解答
1、分析:
考虑用数组存放之字形图形的每一行,由于每一个行并非一次确定,故StringBuffer比较适合。图形分为上升、下降两种趋势,用 flag 进行标识,从而可以确定每个字符与数组的下标的对应关系。
class Solution { public String convert(String s, int numRows) { int len = s.length(); if( len < 2 || numRows == 1) return s; StringBuffer[] sb = new StringBuffer[numRows]; for (int i = 0; i < numRows; i++) { // 初始化 sb[i] = new StringBuffer(); } int row = 1, index = 0; boolean flag = true; while(index < len) { sb[row - 1].append(s.charAt(index)); if(flag == true) { //下降 row++; if(row == numRows) flag = false; } else { //上升 row--; if(row == 1) flag = true; } index++; } for (int i = 1; i < numRows; i++) { sb[0].append(sb[i].toString()); } return sb[0].toString(); } }
标签:class 输出 boolean ima har for new 技术分享 img
原文地址:https://www.cnblogs.com/skillking/p/9388655.html