zoukankan      html  css  js  c++  java
  • lintcode : 空格替换

    题目:

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

    样例

    对于字符串"Mr John Smith", 长度为 13

    替换空格之后的结果为"Mr%20John%20Smith"

    注意

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

    解题:

    表示做到的通过率最低的一道题。。。。

    用java的字符串链接起来,然后toCharArray,然后出去接个和之前的一样,原来%20 表示的是一个空格。。。。。。。参考程序,直接在原char字符数组上操作,先求新的字符串数组的长度,再从后插入%20,这样就解决了,对于从后插入求解的碰到过,题目都会给这样的提示:假设该字符串有足够的空间来加入新的字符,要根据题目找答案,找思路。

    Java程序:

    public class Solution {
        /**
         * @param string: An array of Char
         * @param length: The true length of the string
         * @return: The true length of new string
         */
        public int replaceBlank(char[] string, int length) {
            // Write your code here
            int reallen = length;
            for(int i = 0;i<length;i++){
                if(string[i] == ' ')
                    reallen += 2;
            }
            int index = reallen;
            for(int i = length - 1;i>= 0 ;i-- ){
                if(string[i] == ' '){
                    string[--index] = '0';
                    string[--index] = '2';
                    string[--index] = '%';
                }else{
                    string[--index] = string[i];
                }
            }
            
            return reallen;
        }
    }
    View Code

    总耗时: 1137 ms

    Python程序:

    class Solution:
        # @param {char[]} string: An array of Char
        # @param {int} length: The true length of the string
        # @return {int} The true length of new string
        def replaceBlank(self, string, length):
            # Write your code here
            if string==None:
                return None 
            reallen = length
            for si in string:
                if si==' ':
                    reallen += 2
            index = reallen 
            for i in range(length-1,-1,-1):
                if string[i] == ' ':
                    index -= 1
                    string[ index ] = '0'
                    index -= 1
                    string[ index ] = '2' 
                    index -= 1
                    string[ index ] = '%' 
                else:
                    index -= 1 
                    string[ index ] = string[i] 
            return reallen 
    View Code

    总耗时: 393 ms

  • 相关阅读:
    Centos7 下安装python3.7
    mysql数据库定时备份脚本
    helm 安装EFK(Elasticsearch+Filebeat+Kibana)收集容器日志
    kubernetes Ingress-nginx 配置TLS
    Kubernetes核心原理(三)之Scheduler
    Kubernetes核心原理(二)之Controller Manager
    预习作业(四)
    预习作业(三)
    预习作业(二)
    预习作业(一)
  • 原文地址:https://www.cnblogs.com/bbbblog/p/4889209.html
Copyright © 2011-2022 走看看