前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >空格替换

空格替换

作者头像
一份执着✘
发布2018-06-04 16:11:26
2.6K0
发布2018-06-04 16:11:26
举报
文章被收录于专栏:赵俊的Java专栏赵俊的Java专栏

描述

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

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

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

样例

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

思路

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

代码

代码语言:javascript
复制
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;
    }

图解

无标题.png-38.5kB
无标题.png-38.5kB

要点

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

LintCode:空格替换

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-04-152,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 描述
  • 样例
  • 思路
  • 代码
  • 图解
  • 要点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档