博客
关于我
【Lintcode】524. Left Pad
阅读量:195 次
发布时间:2019-02-28

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

实现leftPad函数,包含两个版本:三个参数和两个参数。函数的目的是将给定字符串左边填充特定字符,使其长度达到指定大小。如果原字符串长度大于或等于目标大小或为空,则返回原字符串。

三个参数版本的函数

public static String leftPad(String originalStr, int size) {
if (originalStr == null || originalStr.isEmpty() || originalStr.length() >= size) {
return originalStr;
}
StringBuilder sb = new StringBuilder();
int padCount = size - originalStr.length();
if (padCount > 0) {
sb.append(String.valueOf(' ').repeat(padCount));
}
return sb.append(originalStr).toString();
}

两个参数版本的函数

public static String leftPad(String originalStr, int size, char padChar) {
if (originalStr == null || originalStr.isEmpty() || originalStr.length() >= size) {
return originalStr;
}
StringBuilder sb = new StringBuilder();
int padCount = size - originalStr.length();
if (padCount > 0) {
sb.append(String.valueOf(padChar).repeat(padCount));
}
return sb.append(originalStr).toString();
}

优化说明

  • 减少循环次数:使用String.valueOf(char).repeat(int)方法一次性生成所需的填充字符,避免了循环操作,提升效率。
  • 处理特殊情况:检查size是否为负数,避免出现负数循环次数,直接返回原字符串。
  • 空字符串处理:当originalStr为空时,直接返回空字符串,符合预期的行为。
  • 简洁代码结构:通过提取公共逻辑,减少代码重复,提高可读性。
  • 时间复杂度分析

    • 三个参数版本:O(size) 时间复杂度,因为最多执行size次循环。
    • 两个参数版本:O(size) 时间复杂度,同样最多执行size次循环。

    通过这种实现,确保了函数在不同情况下的正确性和高效性。

    转载地址:http://fqds.baihongyu.com/

    你可能感兴趣的文章
    Nginx 中解决跨域问题
    查看>>
    nginx 代理解决跨域
    查看>>
    Nginx 动静分离与负载均衡的实现
    查看>>
    Nginx 反向代理 MinIO 及 ruoyi-vue-pro 配置 MinIO 详解
    查看>>
    nginx 反向代理 转发请求时,有时好有时没反应,产生原因及解决
    查看>>
    Nginx 反向代理解决跨域问题
    查看>>
    Nginx 反向代理配置去除前缀
    查看>>
    nginx 后端获取真实ip
    查看>>
    Nginx 多端口配置和访问异常问题的排查与优化
    查看>>
    Nginx 如何代理转发传递真实 ip 地址?
    查看>>
    Nginx 学习总结(16)—— 动静分离、压缩、缓存、黑白名单、性能等内容温习
    查看>>
    Nginx 学习总结(17)—— 8 个免费开源 Nginx 管理系统,轻松管理 Nginx 站点配置
    查看>>
    Nginx 学习(一):Nginx 下载和启动
    查看>>
    nginx 常用指令配置总结
    查看>>
    Nginx 常用配置清单
    查看>>
    nginx 常用配置记录
    查看>>
    nginx 开启ssl模块 [emerg] the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx
    查看>>
    Nginx 我们必须知道的那些事
    查看>>
    Nginx 的 proxy_pass 使用简介
    查看>>
    Nginx 的配置文件中的 keepalive 介绍
    查看>>