题目描述:
给定一个字符串,按顺时针顺序输出为一个正方形,具体规则如下:
1、从上边开始,上边从左到右
2、然后到右边,右边从上到下
3、然后是下边,下边从右到左
4、最后是左边,左边从下到上
输入描述:
输入一行,包含4k(k为整数,1<= k <= 10)个小写字母
输出描述:
输出k+1行,按照上面规则输出正方形,正方形内部用空格填充
实例一:
输入:
abcdefghijklmnop
输出:
abcde
p f
o g
n h
mlkji
思想:
- 一共是4*k个字符,需要拼接的矩形字符是k+1行,每行k+1个字符
- 按行分类,第一行直接打印即可
- 第二行-----倒数第二行,按照三部分拼接,左边 + 空格 + 右边
- 最后一行,倒数打印
- 具体的规则,看代码,然后对应例子很容易明白
public class test1 {
public static void rotateString(String str) {
int k = str.length() / 4;
//新建space,存储中间的空格部分
String space = new String();
for(int i = 0; i < k-1; i++) {
space = space + " ";
}
//循环行数
for(int i = 0; i < k+1; i++) {
//第一行顺序打印
if(i == 0) {
System.out.println(str.substring(0, k+1));
}
//中间部分,由左到右拼接
else if(i > 0 && i < k) {
System.out.println(str.charAt(4*k - i) + space + str.charAt(k + i));
}
//最后一行反序
else {
System.out.println(new StringBuilder(str.substring(2*k, 3*k+1)).reverse());
}
}
}
public static void main(String[] args) {
String str = "abcdefghijklmnop";
rotateString(str);
}
}
//打印结果
abcde
p f
o g
n h
mlkji