【拼多多-笔试真题】旋转字符串

题目描述:

给定一个字符串,按顺时针顺序输出为一个正方形,具体规则如下:
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值