zoukankan      html  css  js  c++  java
  • 剑指offer-0x04

    题目描述
    解题思路

    #include <iostream>
    
    using namespace std;
    
    void ReplaceBlank(char str[], int length)
    {
        if(str == NULL || length<=0)
            return;
        int originalLength = 0;
        int numofBlank = 0;
        int i = 0;
        //计算原字符串的长度,并统计空格个数
        while(str[i]!= '')
        {
            originalLength ++;
            if(str[i] == ' ')
                numofBlank ++;
            i++;
        }
        //每替换一个空格,长度增加2
        int newlength = originalLength + numofBlank * 2;
        if(newlength>length)
            return;
        int indexofOriginal = originalLength;
        int indexofNew = newlength;
    
        while(indexofOriginal>=0 && indexofNew>indexofOriginal)
        {
            if(str[indexofOriginal]==' ')
            {
                str[indexofNew--]='0';
                str[indexofNew--]='2';
                str[indexofNew--]='%';
            }
            else
                str[indexofNew--]=str[indexofOriginal];
            indexofOriginal--;
        }
    
    
    }
    
    int main()
    {
        char str[]="hello world hello c++";
        ReplaceBlank(str,100);
        cout << "result is  "<< str<<endl;
        return 0;
    }
    
    keep calm and carry on
  • 相关阅读:
    nodeclub 学习记录
    读mongoose api 记录
    sublime 插件 和free 注册码
    mongodb 基本语法
    安装 adobe flash player
    nginx 安装
    压缩 解压文件
    async 异步流程控制规则
    a标签# 和javascript:;的区别
    获取url 参数
  • 原文地址:https://www.cnblogs.com/geekvc/p/6657322.html
Copyright © 2011-2022 走看看