zoukankan      html  css  js  c++  java
  • [剑指Offer] 2.替换空格

    题目描述

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

    【思路1】一旦找到空格则将空格后的字符串整体后移两位,然后将%20插入空格处

     1 //length为牛客系统规定字符串输出的最大长度,固定为一个常数
     2 class Solution {
     3 public:
     4     void replaceSpace(char *str,int length) {
     5         int i,j;
     6         for(i = 0; i < length; i ++) {
     7             if(str[i] == ' ') {
     8                 for(j = length; j >= i + 3; j --) {
     9                     str[j] = str[j-2];
    10                 }
    11                 str[i] = '%';
    12                 str[i+1] = '2';
    13                 str[i+2] = '0';
    14             }
    15         }
    16     }
    17 };

    【思路2】从后往前查找,先计算需要多少空间,然后从后往前移动,则每个字符只为移动一次。效率更高。

     1 class Solution {
     2 public:
     3     void replaceSpace(char *str,int length) {
     4         int num_of_space = 0;
     5         for(int i = 0;i < length;i ++){
     6             if(str[i] == ' ')
     7                 num_of_space ++;
     8         }
     9         int size = length + 2*num_of_space;
    10         int index = size - 1; 
    11         for(int i = length - 1;i >= 0;i --){
    12             if(str[i] != ' '){
    13                 str[index --] = str[i];
    14             }
    15             else{
    16                 str[index --] = '0';
    17                 str[index --] = '2';
    18                 str[index --] = '%';
    19             }
    20         }
    21     }
    22 };
  • 相关阅读:
    简单查询
    Scott用户表
    记一次Sqoop抽数据异常
    Flink+Druid构建实时OLAP的探索
    客户端埋点实时OLAP指标计算方案
    Kafka服务不可用(宕机)问题踩坑记
    实时计算-多级订单金额,及下级人数
    Apache Druid0.15.0安装方式
    superset安装文档
    Scala的常用小技巧
  • 原文地址:https://www.cnblogs.com/lca1826/p/6436273.html
Copyright © 2011-2022 走看看