URL化 LeetCode

简介: URL化
```java
package com.stan.algo.leetcode;
public class URLReplaceSpaces {
    public static void main(String[] args) {
        System.out.println(replaceSpaces("Mr John Smith    ", 13));
        System.out.println(replaceSpaces("               ", 5));
    }
    /**
     * 输入:"Mr John Smith    ", 13
     * 输出:"Mr%20John%20Smith"
     * <p>
     * 输入:"               ",
     * 输出:"%20%20%20%20%20"
     *
     * @param S
     * @param length
     * @return
     */
    public static String replaceSpaces(String S, int length) {
        // 转为字符数组
        char[] chars = S.toCharArray();
        int count = 0;
        int i = 0;
        // 时间复杂度 O(n)
        for (; i < length; i++) {
            if (chars[i] != 32) {
                count++;
            }
        }
        char[] chars1;
        if (count == 0) {
            chars1 = new char[length * 3];
            for (int j = 0; j < length * 3; j++) {
                if (j % 3 == 0) {
                    chars1[j] = '%';
                } else if (j % 3 == 1) {
                    chars1[j] = '2';
                } else {
                    chars1[j] = '0';
                }
            }
            return new String(chars1);
        }
        chars1 = new char[3 * (length) - 2 * count];
        int index = 0;
        for (int j = 0; j < length; j++) {
            if (chars[j] == 32) {
                chars1[index++] = '%';
                chars1[index++] = '2';
                chars1[index++] = '0';
            } else {
                chars1[index] = chars[j];
                index++;
            }
        }
        return new String(chars1);
    }
}
目录
相关文章
|
移动开发 Java Android开发
构建高效Android应用:Kotlin协程的实践之路
【2月更文挑战第31天】 在移动开发领域,性能优化和流畅的用户体验一直是开发者追求的目标。随着Kotlin语言的流行,其异步编程解决方案——协程(Coroutines),为Android应用带来了革命性的并发处理能力。本文将深入探讨Kotlin协程的核心概念、设计原理以及在Android应用中的实际应用案例,旨在帮助开发者掌握这一强大的工具,从而提升应用的性能和响应能力。
|
Shell Linux 数据安全/隐私保护
Linux Shell入门:掌握基本命令和脚本编写
Linux Shell是Linux操作系统中的命令解释器,允许用户通过命令行界面与操作系统进行交互。掌握Shell基础是成为Linux系统管理员或开发人员的关键。本文将介绍Linux Shell的基本知识,包括常用命令和简单脚本编写。
373 0
|
运维 新制造 数据可视化
带你读《智能制造之卓越设备管理与运维实践》之一:设备运维管理的新挑战
本书从工业企业实际需求出发,结合智能制造环境下的紧迫需求,融合作者信息化咨询与项目工作实践,以理论联系实际,将设备的全生命周期管理、精益管理、全员维护、先进的维护策略(预测性维护、智能维护)等管理理与信息化技术进行融合设计,以“IE+IT”的思想实现管理平台与信息平台的平衡发展。
|
机器学习/深度学习 人工智能 算法
【乐器识别系统】图像识别+人工智能+深度学习+Python+TensorFlow+卷积神经网络+模型训练
乐器识别系统。使用Python为主要编程语言,基于人工智能框架库TensorFlow搭建ResNet50卷积神经网络算法,通过对30种乐器('迪吉里杜管', '铃鼓', '木琴', '手风琴', '阿尔卑斯号角', '风笛', '班卓琴', '邦戈鼓', '卡萨巴', '响板', '单簧管', '古钢琴', '手风琴(六角形)', '鼓', '扬琴', '长笛', '刮瓜', '吉他', '口琴', '竖琴', '沙槌', '陶笛', '钢琴', '萨克斯管', '锡塔尔琴', '钢鼓', '长号', '小号', '大号', '小提琴')的图像数据集进行训练,得到一个训练精度较高的模型,并将其
457 0
【乐器识别系统】图像识别+人工智能+深度学习+Python+TensorFlow+卷积神经网络+模型训练
|
8月前
|
监控 算法 测试技术
突破极限: 高负载场景下的单机300M多行正则日志采集不是梦
在当今数字化时代,日志数据已成为企业 IT 运营和业务分析的关键资源。然而,随着业务规模的扩大和系统复杂度的提升,日志数据的体量呈现爆发式增长,给日志采集和处理系统带来了巨大挑战。
582 99
|
11月前
|
vr&ar 云计算 UED
实时云渲染:推动XR技术产业化发展的关键技术之一
近年来,企业利用扩展现实(XR)为用户提供沉浸式虚拟环境,Cloud XR、协同技术和GPU资源池化技术成为XR产业应用的关键。Cloud XR通过云端计算资源实现高效图形渲染,降低终端要求;协同技术助力实时协作,提升团队效率;GPU资源池化则优化资源分配,降低成本。平行云LarkXR提供全面的解决方案,推动XR技术广泛应用。
366 18
|
JavaScript 算法 内存技术
如何降低node.js版本(nvm下载安装与使用)
如何降低node.js版本(nvm下载安装与使用)
|
Java 数据库连接 测试技术
Mybatis-PLUS详解
Mybatis-PLUS详解
477 0
|
XML Java API
Android 浅度解析:系统框架层修改,编译,推送相关操作
Android 浅度解析:系统框架层修改,编译,推送相关操作
1023 0
|
缓存 监控 固态存储
在Linux中,如何给最小化安装系统,进行基础优化?
在Linux中,如何给最小化安装系统,进行基础优化?