关闭

《剑指offer》字符串中的字符替换

标签: 剑指offer字符串中的字符替换
258人阅读 评论(0) 收藏 举报
分类:

一、题目描述

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

二、输入描述

char *str :字符串
int length : 字符串的长度

三、牛客网提供的类框架

//length为牛客系统规定字符串输出的最大长度,固定为一个常数
class Solution {
public:
    void replaceSpace(char *str,int length) {

    }
};

四、解题思路

分两步
第一:先查找字符数组中有多少个空格,假设有n个空格。增加替换后数组的长度,因为一个空格用“%20”三个字符去替换,所以每个空格就会是数组增加2ge位置。

第二:字符数组从后面开始查找,如果遇到空格就使用“0”“2”“%”去替换,否则位置直接后移。

五、代码

//length为牛客系统规定字符串输出的最大长度,固定为一个常数
class Solution {
public:
    void replaceSpace(char *str,int length) {
        int newLength = length;
        for(int i = 0; i < length; i++)
        {
            if(str[i] == ' ') newLength += 2;
        }

        int newIndex = newLength - 1;
        for(int i = length - 1; i >= 0; i--)
        {
            if(str[i] == ' ')
            {
                str[newIndex--] = '0';
                str[newIndex--] = '2';
                str[newIndex--] = '%';
            }
            else
            {
                str[newIndex--] = str[i];
            }
        }
    }
};
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

【剑指offer】字符串的排列

昨晚折腾了一个晚上,连这一道题目都没AC,太受打击了!这里倒不是算法的问题,主要是既要考虑输出的字符串按字典序排列,又要去掉重复的字符串。本想直接在不保存所有字符串的前提下,直接按照要求输出字符串,但...
  • mmc_maodun
  • mmc_maodun
  • 2014-05-21 08:22
  • 3407

剑指offer:字符串的排列(字符串全排列)

题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按...
  • u010889616
  • u010889616
  • 2015-09-12 00:32
  • 1156

【剑指Offer学习】【面试题54:表示数值的字符串】

题目:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例子说明  例如,字符串“+100”,“5e2”,“-123”,“3.1416”及”-1E-16”都表示数值,但“12e”,”1a3....
  • DERRANTCM
  • DERRANTCM
  • 2015-07-10 08:14
  • 2705

剑指Offer算法题之字符串替换字符--面试题4:替换空格

替换空格题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“We are happy.”,则输出“We%20are%20happy.”。题目背景:在网络编程中,如果URL参数中含有特...
  • CSDN_564174144
  • CSDN_564174144
  • 2017-07-11 15:08
  • 318

《剑指Offer》面试题:按字典序打印出该字符串中字符的所有排列

题目描述: 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。这道题要注意...
  • u010412719
  • u010412719
  • 2015-10-08 22:17
  • 3334

【剑指offer】之删除在另一个字符串中出现的字符

题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。 ...
  • u010098159
  • u010098159
  • 2015-12-08 16:39
  • 188

《剑指Offer》:删除在另一个字符串中出现的字符

题目 题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。 例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r st...
  • u010412719
  • u010412719
  • 2015-08-29 14:36
  • 591

剑指offer——查找一个字符串中第一次出现一次的字符(哈希直接定址法)

哈希表——直接定址法的应用 哈希表(Hash table,也叫散列表),是根据关键码值而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。 直接...
  • poison_biti
  • poison_biti
  • 2016-08-18 13:57
  • 503

【剑指offer】删除在另一个字符串中出现的字符

题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。 ...
  • mmc_maodun
  • mmc_maodun
  • 2014-05-27 08:26
  • 3889

剑指offer—求字符串中第一个只出现一次的字符

对于这个问题,常规思路我们进行分析,你首先肯定是喜欢先让指向一个字符,然后和它后面的每个字符进行比较,如果后面没有相同的字符的话,这个字符就是你所要找的第一个只出现一次的字符。 但是这种思路我们首先...
  • qq_26768741
  • qq_26768741
  • 2016-05-18 21:49
  • 3201
    个人资料
    • 访问:83044次
    • 积分:1559
    • 等级:
    • 排名:千里之外
    • 原创:75篇
    • 转载:0篇
    • 译文:0篇
    • 评论:19条
    友情链接
    最新评论