• 剑指offer(二):替换空格


    题目:

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

    解决方法:

      先统计空格的个数,再从后往前替换,时间复杂度为O(n),空间复杂度为O(n)[看别人是O(1),我需要下去再研究一下]

    代码如下:

     1 public class Solution {
     2     public String replaceSpace(StringBuffer str) {
     3         if(str == null || str.length() == 0){
     4             return "";
     5         }
     6         String string = str.toString();
     7         char[] ch = string.toCharArray();
     8         //空格数目
     9         int count = 0;
    10         for(int i = 0; i < ch.length;i++){
    11             if(ch[i] == ' '){
    12                 count++;
    13             }
    14         }
    15         //从后往前替换
    16         char c[] = new char[ch.length+2*count];
    17         for(int i = ch.length-1; i >=0 ;i--){
    18             if(ch[i] != ' '){
    19                 c[i+2*count] = ch[i];
    20             }else{
    21                 count--;
    22                 c[i+2*count] = '%';
    23                 c[i+2*count+1] = '2';
    24                 c[i+2*count+2] = '0';
    25             }
    26         }
    27         return new String(c);
    28     }
    29 }

      

  • 相关阅读:
    ASP.NET Web Form(八)
    ASP.NET Web Form(八)
    软考知识点总结
    软考知识点总结
    c# 引用外部dll
    c# 引用外部dll
    ORA600 [Kcbz_check_objd_typ_1] Running a Job (Doc ID 785899.1)
    oracle创建em
    1918: 等值数目
    1917: 支配值数目
  • 原文地址:https://www.cnblogs.com/rgever/p/9639930.html
Copyright © 2020-2023  润新知