博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
6. ZigZag Conversion
阅读量:7246 次
发布时间:2019-06-29

本文共 1122 字,大约阅读时间需要 3 分钟。

一、题目

  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();    }}

 

转载于:https://www.cnblogs.com/skillking/p/9388655.html

你可能感兴趣的文章
NUC1178 Kickdown
查看>>
理解和运用javascript中的call及apply
查看>>
VUE-CLI 设置页面title
查看>>
微信备份方法
查看>>
微软商业服务器部署系列3-windows serevr 2008介绍
查看>>
UVA 10564 Paths through the Hourglass(背包)
查看>>
[hdu6437]Problem L. Videos
查看>>
python 数据加密以及生成token和token验证
查看>>
优达学城数据分析师纳米学位——P4项目知识点整理及代码分析
查看>>
压缩 KVM 的 qcow2 镜像文件
查看>>
python 读写文件中 w与wt ; r与rt 的区别
查看>>
深究“通过样式表实现固定表头和列”
查看>>
《Office 365开发入门指南》上市说明和读者服务
查看>>
Docker生态会重蹈Hadoop的覆辙吗?
查看>>
WPF换肤之八:创建3D浏览效果
查看>>
JEECG环境搭建(Maven版本)-总结Eclipse
查看>>
HTTP第一篇【简单了解HTTP、与HTTP相关的协议】
查看>>
Python生成随机验证码
查看>>
Python学习笔记(3)——数据类型和变量
查看>>
03、微信小程序之 永不过时的HelloWorld
查看>>