列表

详情


NC282. 替换空格

描述

请实现一个函数,将一个字符串s中的每个空格替换成“%20”。
例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

数据范围:。保证字符串中的字符为大写英文字母、小写英文字母和空格中的一种。

示例1

输入:

"We Are Happy"

输出:

"We%20Are%20Happy"

示例2

输入:

" "

输出:

"%20"

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Rust 解法, 执行用时: 2ms, 内存消耗: 308KB, 提交时间: 2021-12-04

struct Solution{

}

impl Solution {
    fn new() -> Self {
        Solution{}
    }

    /**
    * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
    *
    * 
        * @param s string字符串 
        * @return string字符串
    */
    pub fn replaceSpace(&self, s: String) -> String {
        // write code here
        let mut res:String = String::new();
        if s.len() == 0 {
            return res;
        }
        
        for c in s.chars() {
            match c {
                ' ' => res.push_str("%20"),
                _ => res.push(c)
            }
        }
        
        res  
    }
}

C++ 解法, 执行用时: 2ms, 内存消耗: 324KB, 提交时间: 2022-03-12

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return string字符串
     */
    string replaceSpace(string s) {
        // write code here
       for(int i=0;i<s.size();i++)
       {
           if(s[i]==' ')
           {
               s[i]='%';
               s.insert(i+1, "20");
           }
       }
        return s;
    }
};

C++ 解法, 执行用时: 2ms, 内存消耗: 396KB, 提交时间: 2022-02-10

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return string字符串
     */
    string replaceSpace(string s) {
        // write code here
        int index = 0;
        string ret, temp;
        
        for (int i = 0; i < s.length(); i++)
        {
            if (s[i] == ' ')
            {
                temp = s.substr(index, i - index);
                cout << temp << "\n";
                ret = ret + temp + "%20";
                temp = "";
                index = i + 1;
            }
        }
        
        ret += s.substr(index, s.length()-index);
        
        return ret;
    }
};

C++ 解法, 执行用时: 2ms, 内存消耗: 396KB, 提交时间: 2022-02-09

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return string字符串
     */
    string replaceSpace(string s) {
        int count = 0;
        for ( int i = 0; i < s.length(); i++ ){
            if ( s[i] == ' '){
                count++;
            }
        }
        s.resize(s.length() + count*2 , 0);
        for ( int i = s.length()-1; i >= 0; i-- ){
            if ( s[i] != ' '){
                s[i+count*2] = s[i] ;
            }
            if ( s[i] == ' '){
                count--;
                s[i + count*2] = '%';
                s[i + count*2+1] = '2';
                s[i + count*2+2] = '0';
            }
        }
        return s;
        // write code here
    }
};

C++ 解法, 执行用时: 2ms, 内存消耗: 396KB, 提交时间: 2021-10-17

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return string字符串
     */
    string replaceSpace(string s) {
        // write code here
        string result;
        for (int i = 0; i < s.length(); i++) {
            if (s[i] == ' ') {
                result += "%20";
            } else {
                result += s[i];
            }
        }
        return result;
    }
};

上一题