码迷,mamicode.com
首页 > 编程语言 > 详细

剑指offer-替换空格(c++)

时间:2020-05-15 20:11:29      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:lse   level   for   mon   ini   down   rap   ios   html_   

剑指offer-替换空格(c++)

1.题目描述

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

2.解题思路

  1. 建立一个栈,从字符数组的最后一个字符开始检测,如果字符是空格,依次入栈0,1,%;否则入栈字符数组的字符。
  2. 循环遍历栈并赋值给字符数组

3.代码

//
// Created by Elijah on 2020/5/15.
//
#include <iostream>
#include <stack>
#include <stdio.h>

using namespace std;

/**
 * 请实现一个函数,将一个字符串中的每个空格替换成“%20”。
 * 例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
 */
class Solution {
public:
    void replaceSpace(char *str, int length) {
        if (str == NULL || length == 0)
            return;

        stack<char> ret;

        for (int i = length - 1; i > -1; i--) {
            if (str[i] == ‘ ‘) {
                ret.push(‘0‘);
                ret.push(‘2‘);
                ret.push(‘%‘);
            } else {
                ret.push(str[i]);
            }
        }

        int pos = 0;
        while (!ret.empty()) {
            str[pos] = ret.top();
            ret.pop();
            pos += 1;
        }
    }
};

剑指offer-替换空格(c++)

标签:lse   level   for   mon   ini   down   rap   ios   html_   

原文地址:https://www.cnblogs.com/Elijah-Z/p/12896700.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!