6 ZigZag Conversion

来源:互联网 发布:知乎有mac版吗 编辑:程序博客网 时间:2024/06/05 16:55

6 ZigZag Conversion

题目内容

这里写图片描述

题目注释:将输入的字符串s,按照z字形排列成n行,再按照行输出新的字符串。

解题思路

这是一道找规律的题目,需要找到字符串原始序号与排列成z字形的新序号之间的关系。
我在解题时利用给出的例子试着列了一下规律,最后验证发现正确。设字符串原索引为i,排成n行z字形。即:
1)对于i/(n-1)得到的余数。发现如果余数为0,则该字符一定在首行或者末尾行。若不为0,其所在的行数存在2)所述的规律。
2)对于i/(n-1)所得到的商,如果商为奇数,那么得到的余数即字符倒数所在的行数。如果商为偶数,那么得到的余数则该字符正数所在的行数。
3)上述为主要规律,我们只要设置一个n维的StringBuffer数组,那么每一个元素都是一个长度可变化的字符串。用于存防按照z字形排列的每一行结果。最后再将结果按照行输出即可。
4)注意,对于n<=1的,需要单独考虑,此时字符串没有任何变化。

根据上述整体思路,我的code如下:
这里写图片描述

StringBuffer的用法-补充知识点

StringBuffer主要偏重对字符串变化的处理,比如追加、插入、删除等。

初始化

1、StringBuffer s=new StringBuffer();
初始化出了一个空的StringBuffer对象。
2、StringBuffer s=new StringBuffer(“abc”);
初始化一个内容为字符串“abc”的对象。

追加

StringBuffer sb = new StringBuffer(“abc”);
sb.append(true);
在字符串末尾追加,比String里面直接用sb+=“true”的方法更加节约内容。

删除

1、sb. deleteCharAt(1);
deleteCharAt(index)方法:删除指定位置的字符。
2、public StringBuffer delete(int start,int end);
删除指定范围内的字符内容。

……还有其他的以后慢慢学。

与String类对象之间的互相转化

这里写图片描述

原创粉丝点击