码迷,mamicode.com
首页 > 其他好文 > 详细

[剑指offer] 2. 替换空格

时间:2018-11-30 11:37:47      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:遍历   span   空格   思路   har   记录   length   color   solution   

题目描述

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

思路:
字符数组插入,就是考虑插入位后面的移动。考虑从后往前插入,才能移动最少的位数。
遍历一遍记录需要插入的次数,根据剩余插入次数来移动元素。
class Solution
{
public:
  void replaceSpace(char *str, int length)
  {
    int spaceNUms = 0;
    for (int i = 0; i < length; i++)
    {
      if (str[i] ==  )
      {
        ++spaceNUms;
      }
    }

    for (int j = length - 1; j >= 0; j--)
    {
      if (str[j] !=  )
        str[j + 2 * spaceNUms] = str[j];
      else
      {
        --spaceNUms;
        str[j + 2 * spaceNUms] = %;
        str[j + 2 * spaceNUms + 1] = 2;
        str[j + 2 * spaceNUms + 2] = 0;
      }
    }
  }
};

 

[剑指offer] 2. 替换空格

标签:遍历   span   空格   思路   har   记录   length   color   solution   

原文地址:https://www.cnblogs.com/ruoh3kou/p/10042325.html

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