• 剑指Offer:替换空格


    题目1510:替换空格

    时间限制:1 秒

    内存限制:128 兆

    特殊判题:否

    提交:1697

    解决:436

    题目描述:

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

    输入:

    每个输入文件仅包含一组测试样例。
    对于每组测试案例,输入一行代表要处理的字符串。

    输出:

    对应每个测试案例,出经过处理后的字符串。

    样例输入:
    We Are Happy
    样例输出:
    We%20Are%20Happy
    【代码】

    1. /********************************* 
    2. *   日期:2013-10-16 
    3. *   作者:SJF0115 
    4. *   题号: 九度OJ 题目1510:替换空格 
    5. *   来源:http://ac.jobdu.com/problem.php?pid=1510 
    6. *   结果:AC 
    7. *   来源:剑指Offer 
    8. *   总结: 
    9. **********************************/  
    10. #include<stdio.h>  
    11. #include<string.h>  
    12.   
    13. char str[10000001];  
    14.   //直接写到main里面了,应该写到一个函数里面,main来调用
    15. int main()  
    16. {     
    17.     int i,j,len;  
    18.     while(gets(str)){  
    19.         int count = 0;  
    20.         int len = strlen(str);  
    21.         //统计空格的个数  
    22.         for(i = 0;i < len;i++){  
    23.             if(str[i] == ' '){  
    24.                 count++;  
    25.             }  
    26.         }  
    27.         //原始字符串末尾  
    28.         i = len;  
    29.         //替换之后字符串末尾  
    30.         j = 2*count+len;  //原来一个空格替换成了长度为3的20%
    31.         //i == j 表示空格替换完毕  



    1. //从后往前处理,只做了必要的移动(如果从前往后处理,做了许多多余的移动)



    1.         while(i != j && i >= 0){  
    2.             if(str[i] == ' ')
    3.             {  
    4.                 str[j--] = '0';  
    5.                 str[j--] = '2';  
    6.                 str[j--] = '%';  
    7.                 i--;  
    8.             }  
    9.             else
    10.             {  
    11.                 str[j] = str[i];  
    12.                 j--;  
    13.                 i--;  
    14.             }  
    15.         }  
    16.         //输出替换之后的字符串  
    17.         len = strlen(str);  
    18.         for(i = 0;i < len;i++){  
    19.             printf("%c",str[i]);  
    20.         }  
    21.         printf(" ");  
    22.     }  
    23.     return 0;  
    24. }  

    【解析】






    【第二种方法】








  • 相关阅读:
    城市的划入划出效果
    文本溢出省略解决笔记css
    长串英文数字强制折行解决办法css
    Poj 2352 Star
    树状数组(Binary Indexed Trees,二分索引树)
    二叉树的层次遍历
    Uva 107 The Cat in the Hat
    Uva 10336 Rank the Languages
    Uva 536 Tree Recovery
    Uva10701 Pre, in and post
  • 原文地址:https://www.cnblogs.com/baoendemao/p/3804710.html
Copyright © 2020-2023  润新知