点击查看剑指Offer全解【Java & Golang】实现

题目描述

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


思路

第一种思路是直接使用系统的内置字符串处理库去替换掉所有的空格,但是这种方法一般是取巧方法,所以除非真的做不出来,否则不能使用。

第二种思路是先统计空格的数量,在新建一个字符数组用于容纳所需的所有字符(包括%20),然后依次将所有字符及%20插入到新的字符数组中。

Java实现

public class Solution {public String replaceSpace(StringBuffer str) {char[] chars = str.toString().toCharArray();// 统计空格数和非空格数int spaceCount = 0, charCount = 0;for (int i = 0; i < chars.length; i++) {if (chars[i] == ' ') {spaceCount++;} else {charCount++;}}// 计算最终所需长度int len = charCount + 3 * spaceCount;char[] res = new char[len];// 指向res和chars首部的指针int index1 = 0, index2 = 0;while (index1 < res.length && index2 < chars.length) {if (chars[index2] != ' ') {res[index1++] = chars[index2++];} else {char[] aux = new char[]{'%', '2', '0'};for (char c:aux) {res[index1++] = c;}index2++;}}return new String(res);}
}

剑指Offer(48)-[ArrayString]替换空格相关推荐

  1. 剑指Offer(二):替换空格

    参考链接: https://cuijiahua.com/blog/2017/11/basis_2.html https://blog.csdn.net/wang454592297/article/de ...

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

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

  3. 剑指offer二之替换空格

    一.题目: 请实现一个函数,将一个字符串中的空格替换成"%20".例如,当字符串为I love you.则经过替换之后的字符串为I%20love%20You. 二.解题方法: 方法 ...

  4. 【剑指offer】_02替换空格

    题目描述 请实现一个函数,将一个字符串中的每个空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 解题思路 ...

  5. python剑指offer替换空格_《剑指Offer》字符串 替换空格

    //str.replace(char oldChar,char newChar);用字符newChar替换oldChar;返回一个新的字符串 public class Solution { publi ...

  6. 剑指offer二:替换空格

    题目描述: 请实现一个函数,将一个字符串中的空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 解题思路: ...

  7. 【LeetCode】剑指 Offer 48. 最长不含重复字符的子字符串

    [LeetCode]剑指 Offer 48. 最长不含重复字符的子字符串 文章目录 [LeetCode]剑指 Offer 48. 最长不含重复字符的子字符串 package offer;import ...

  8. 牛客网剑指office系列:替换空格

    牛客网剑指office系列:替换空格 本系列应用于想要快速提升算法水平的人,最好有一定基础 题目:替换空格 请实现一个函数,将一个字符串中的每个空格替换成"%20".例如,当字符串 ...

  9. python剑指offer替换空格_《剑指offer》2-替换空格【Java+Python】

    替换空格 1. 题目描述 请实现一个函数,将一个字符串中的空格替换成"%20". 2. 示例 例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%2 ...

最新文章

  1. html表格联动,html前端基础:table和select操作
  2. python可视化水平箭头_Python交互图表可视化Bokeh:2. 辅助参数
  3. 谈谈“个人电子信息”的保护
  4. 一个很棒的PHP缓存类,收藏下
  5. 双指针算法 | 力扣344. 反转字符串
  6. 有字符csv文件导入matlab_Matlab:如何读取CSV文件以及如何读取带有字符串数据项的CSV文件...
  7. HBase常用操作备忘
  8. main方法中args_public static void main(String [] args)– Java main方法
  9. Process实操教程 | 中介效应检验
  10. day4:非参数统计及其检验方法(无sas代码)
  11. 干货|80天自学通过高级项目管理师
  12. bat文件如何调用另一个bat文件
  13. 基于StackGAN++、CycleGAN的图像生成工具,开源
  14. 修改织梦后台登陆地址login.php,织梦后台免登录的实现步骤 Dede后台自动登录的修改方法...
  15. ACM计算机系统人为因素会议,虚拟现实打字照亮思想和键盘
  16. 哪种手机便签软件可以打印,支持打印的手机便签软件
  17. Wifi源码学习(Android5.1)之wifi开关
  18. WGS84(GPS坐标) BD09坐标(百度坐标)GCJ02(国测局坐标) 的相互转换
  19. 【老鸟进阶】deepfacelab训练参数详解
  20. Could not load dynamic library ‘libcusolver.so.11‘; dlerror: libcusolver.so.11: cannot open shared o

热门文章

  1. 关于在win10登录界面输入正确密码不能登入
  2. 什么叫软文营销,软文营销应该怎么做
  3. 歌谣学前端之数组的方法
  4. 配置puppeteer executablePath的正确姿势
  5. 异常行为检测论文学习综述
  6. MySQL基础(五)
  7. AirtestIDE学习笔记---安装(windows系统)
  8. each函数linux,each的详解
  9. GEO数据库中单细胞测序数据下载
  10. AI应用说-生产制造专场开课啦!