524. 左填充

524. 左填充

 
实现一个leftpad库,如果不知道什么是leftpad可以看样例

样例

例1:
输入:
leftpad("foo", 5)
输出:
" foo"
例2:
输入:
leftpad("foobar", 6)
输出:
"foobar"
例3:
输入:
leftpad("1", 2, "0")
输出:
"01"

挑战

使用尽量少的内存
输入测试数据  ( 每行一个参数 ) 如何理解测试数据?
 
 
public class StringUtils {
 
 
static public String leftPad(String originalStr, int size) {
        // Write your code here
        int length=originalStr.length();
        if(originalStr.length()<size){
            StringBuilder ret= new StringBuilder();
            for (int i = length; i < size; i++) {
                ret.append(" ");
            }
            ret.append(originalStr);
            return ret.toString();
        }else{
            return originalStr;
        }
 
 
    }
 
 
    /*
     * @param originalStr: the string we want to append to
     * @param size: the target length of the string
     * @param padChar: the character to pad to the left side of the string
     * @return: A string
     */
    static public String leftPad(String originalStr, int size, char padChar) {
        // write your code here
        int length=originalStr.length();
        if(originalStr.length()<size){
            StringBuilder ret= new StringBuilder();
            for (int i = length; i < size; i++) {
                ret.append(padChar);
            }
            ret.append(originalStr);
            return ret.toString();
        }else{
            return originalStr;
        }
    }
}
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这个方阵的填充规律是,从外层向内层填充,每一层从到右、从上到下依次填充数字,直到填满该层的所有位置。因此,我们可以考虑用循环来实现这个填充过程。 具体实现思路如下: 1. 定义一个二维数组来表示方阵,其大小为n*n,其中n是方阵的边长。 2. 定义变量num=1,表示当前要填充的数字。 3. 定义变量layer=0,表示当前要填充的层,初始值为0。 4. 在循环中,首先从到右填充该层的上边,然后从上到下填充该层的右边,然后从右到填充该层的下边,最后从下到上填充该层的边。每填充一个位置,将num加1。 5. 填充完当前层后,将layer加1,进入下一层的填充过程。如果填满了所有的层,则结束循环。 下面是基于这个思路的 Python 代码实现: ```python def fill_matrix(n): matrix = [[0] * n for i in range(n)] # 创建一个n*n的二维数组,初始值为0 num = 1 # 要填充的数字 layer = 0 # 当前要填充的层 while layer < n // 2 + n % 2: # 循环填充每一层 for i in range(layer, n - layer): # 从到右填充上边 matrix[layer][i] = num num += 1 for i in range(layer + 1, n - layer): # 从上到下填充右边 matrix[i][n - layer - 1] = num num += 1 for i in range(layer + 1, n - layer): # 从右到填充下边 matrix[n - layer - 1][n - i - 1] = num num += 1 for i in range(layer + 1, n - layer - 1): # 从下到上填充边 matrix[n - i - 1][layer] = num num += 1 layer += 1 # 进入下一层 return matrix # 测试 matrix = fill_matrix(5) for row in matrix: print(row) ``` 输出结果为: ``` [1, 16, 15, 14, 13] [2, 17, 24, 23, 12] [3, 18, 25, 22, 11] [4, 19, 20, 21, 10] [5, 6, 7, 8, 9] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时代我西

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值