美文网首页
字符串替换-剑指offer5题

字符串替换-剑指offer5题

作者: 继续向前冲 | 来源:发表于2018-08-03 06:28 被阅读7次

题目:请实现一个函数,把字符串中的每个空格替换成"%20"。例如,输入"we are happy",则输出"we%20are%happy"

正常的思想是正向替换,不断的挪动指针,这样会使时间复杂度在O(n2) ,这时需要逆向思维,先讲偏移量算好,这样会减少挪动指针的次数


void repStr(char repStr[],int length) {
    
    if (repStr == nullptr || length <= 0) {
        return;
    }
    
    int orignLen = 0;
    int numberofBank = 0;
    int i = 0;
    while (repStr[i] != '\0') {
        ++ orignLen;
        if (repStr[i] == ' ') {
           ++ numberofBank;
        }
        ++ i;
    }
    
    int newLen = orignLen + numberofBank * 2;
    
    int indexOfOrgin = orignLen;
    int indexOfNew = newLen;
    
    while (orignLen>=0 && indexOfNew > indexOfOrgin) {
        
        if (repStr[indexOfOrgin] == ' ') {
            repStr[indexOfNew --] = '0';
            repStr[indexOfNew --] = '2';
            repStr[indexOfNew --] = '%';
        }else
        {
            repStr[indexOfNew --] = repStr[indexOfOrgin];
        }
        
        -- orignLen;
    }
    
    
}

相关文章

  • 字符串替换-剑指offer5题

    题目:请实现一个函数,把字符串中的每个空格替换成"%20"。例如,输入"we are happy",则输出"we%...

  • 1.4 空格替换

    把字符串里的空格替换成%20。 这题剑指offer也有,我当时觉得Java就用StringBuilder就行了就没...

  • js实现字符串算法

    字符串算法 替换空格 剑指offer:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为W...

  • LeetCode | 面试题05. 替换空格【剑指Offer】【

    LeetCode 面试题05. 替换空格【剑指Offer】【Easy】【Python】【字符串】 问题 力扣 请实...

  • 剑指offer4J【C2 P5】字符串替换

    题目 将字符串空格替换为 %20 题解 easy 难度,纯数组实现如下: 源码: 剑指offer4J[https:...

  • 替换空格

    《剑指offer》面试题5:替换空格 题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如,输入“we...

  • 全网最全剑指offer题目解答

    【剑指offer】Java版代码(完整版) 【剑指offer】1-10题 【剑指offer】11-20题 【剑指o...

  • 剑指Offer(二)

    剑指Offer(二) 替换空格 题目描述: 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符...

  • 【剑指Offer】02——字符串替换(字符串)

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

  • 第一个只出现一次的字符

    《剑指offer》刷题笔记。如有更好解法,欢迎留言。 关键字:字典 字符串 题目描述: 在一个字符串(0<=字符串...

网友评论

      本文标题:字符串替换-剑指offer5题

      本文链接:https://www.haomeiwen.com/subject/rtwevftx.html