空格替换

描述

设计一种方法,将一个字符串中的所有空格替换成 %20 。你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度。

你的程序还需要返回被替换后的字符串的长度。

注意事项:如果使用 JavaPython, 程序中请用字符数组表示字符串。

样例

对于字符串 "Hello World" , 长度为 11 替换空格之后,参数中的字符串需要变为 "Hello%20World",并且把新长度 17 作为结果返回。

思路

  1. 循环遍历字符数组
  2. 碰到空字符则将空字符后所有的字符向后移动两位(假设字符数组有足够长度),防止添加 %20 时,造成覆盖而导致数据丢失.
  3. 将空字符以及后两位共 3 个位置 替换成 %20
  4. 将字符数组的长度 +2

代码

public int replaceBlank(char[] string, int length) {
        for (int i = 0; i < length; i++) {

            if (string[i] == ' ') {
                for (int j = length + 2; j != i + 2; j--) {
                    string[j] = string[j - 2];
                }
                string[i + 2] = '0';
                string[i + 1] = '2';
                string[i] = '%';
                length += 2;
            }
        }
        return length;
    }

图解

要点

  1. 本题要求是将参数中的字符数组改变,而不能通过创建一个新字符数组进行操作,然后将新字符数组赋值给原字符数组。
  2. 碰到空格要将字符数组的所有字符整体向后移动两位。

LintCode:空格替换

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据结构与算法

1081 线段树练习 2 单点查询及区间修改

1081 线段树练习 2 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description ...

33190
来自专栏梧雨北辰的开发录

Swift学习:泛型

本篇将详细总结介绍Swift泛型的用法; Swift泛型代码让你能够根据自定义的需求,编写出适用于任意类型、灵活可重用的函数及类型。它能让你避免代码的重复,用...

9120
来自专栏数据结构与算法

1470 数列处理

个人博客:doubleq.win 1470 数列处理  时间限制: 1 s  空间限制: 1000 KB  题目等级 : 青铜 Bronze 题解 题目描述 D...

27550
来自专栏JAVA技术站

shell学习二数组 原

类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。

5210
来自专栏用户2442861的专栏

Python之逻辑运算和缩进和选择if

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

7910
来自专栏MelonTeam专栏

OpenGL ES读书笔记(一)—初始庐山真面目

1. OpenGL ES简介 OpenGL ES(OpenGL for Embedded Systems)是以手持和嵌入式设备为目标的高级3D图形应用程序编程接...

268100
来自专栏

c++ 之模板进阶

14710
来自专栏小樱的经验随笔

strncmp函数——比较特定长度的字符串

strncmp函数用于比较特定长度的字符串。 头文件:string.h。 语法  int strncmp(const char *string1, const ...

35890
来自专栏我的技术专栏

关于传值与传引用的讨论

对于用户自定义的类型来说,传引用一般要比传值高效。传引用不需要经过对象构造的过程,在《Effective C++》中作者举了个例子:

11250
来自专栏cs

xml基本知识点

xml, Extensible Markup Language,可扩展的标记语言。 ? xml文档结构.jpg xml文档的规则 1.0 xml文档必须以一个...

35050

扫码关注云+社区

领取腾讯云代金券