zoukankan      html  css  js  c++  java
  • LintCode-212.空格替换

    空格替换

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

    注意事项

    如果使用 Java 或 Python, 程序中请用字符数组表示字符串。

    样例

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

    挑战

    在原字符串(字符数组)中完成替换,不适用额外空间

    标签

    字符串处理 Cracking The Coding Interview

    code

    class Solution {
    public:
        /**
         * @param string: An array of Char
         * @param length: The true length of the string
         * @return: The true length of new string
         */
        int replaceBlank(char string[], int length) {
            // Write your code here
            int blank_count = 0;
            int new_length = length;
            int i;
            for(i=0; i<length; i++) {
                if(string[i] == 32) {
                    blank_count++;
                    new_length += 2;
                }
            }
            for(i=length-1; i>=0; i--) {
                if(string[i] != 32) {
                    string[i+blank_count*2] = string[i];
                }
                else {
                    string[i]   = '%';
                    string[i+1] = '2';
                    string[i+2] = '0';
                    i+=3;
                    blank_count--;
                }
            }
            return new_length;
        }
    };
  • 相关阅读:
    DateTime与DateTime?赋值问题以及null类型的如何赋值问题
    ajax请求aspx.cs后台方法
    Windows 下安装 Memcached
    windows下mysql表名区分大小写
    csredis
    路由名称
    发布后的项目打开swagger
    IActionResult的返回类型
    ASP.NET Core开发之HttpContext
    Web SQL数据库
  • 原文地址:https://www.cnblogs.com/libaoquan/p/6806518.html
Copyright © 2011-2022 走看看