1. 题目

URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。)

示例1:输入:"Mr John Smith    ", 13输出:"Mr%20John%20Smith"示例2:输入:"               ", 5输出:"%20%20%20%20%20"提示:
字符串长度在[0, 500000]范围内。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/string-to-url-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

class Solution {public:string replaceSpaces(string S, int length) {string ans;for(int i = 0; i < length; ++i){if(S[i] == ' ')ans += "%20";elseans += S[i];}return ans;}
};
  • 可以一次性申请string的所需空间,性能较好
class Solution {public:string replaceSpaces(string S, int length) {int i, j, count = 0;for(i = 0; i < length; ++i){if(S[i] == ' ')count++;}int len = length-count+3*count;string ans(len,' ');for(i = 0, j = 0; i < length; ++i,++j){if(S[i] != ' ')ans[j] = S[i];else{ans[j++] = '%';ans[j++] = '2';ans[j]   = '0';}}return ans;}
};

程序员面试金典 - 面试题 01.03. URL化(字符串)相关推荐

  1. 程序员面试金典 - 面试题 10.03. 搜索旋转数组

    题目难度: 中等 原题链接 今天继续更新程序员面试金典系列, 大家在公众号 算法精选 里回复 面试金典 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 搜索旋转数组.给定一个排序后的数组 ...

  2. 程序员面试金典面试题 01.06. 字符串压缩

    前言 本系列文章为<程序员面试金典>刷题笔记. 题目位置:字符串压缩 题集:程序员面试金典 题目 字符串压缩.利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能.比如,字符串a ...

  3. 程序员面试金典 - 面试题 05.03. 翻转数位(位运算)

    1. 题目 给定一个32位整数 num,你可以将一个数位从0变为1.请编写一个程序,找出你能够获得的最长的一串1的长度. 示例 1: 输入: num = 1775(11011101111) 输出: 8 ...

  4. 程序员面试金典 - 面试题 01.02. 判定是否互为字符重排(哈希map)

    1. 题目 给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串. 示例 1: 输入: s1 = "abc", s2 = &qu ...

  5. 程序员面试金典 - 面试题 01.01. 判定字符是否唯一(位运算,牛)

    1. 题目 实现一个算法,确定一个字符串 s 的所有字符是否全都不同. 示例 1: 输入: s = "leetcode" 输出: false 示例 2: 输入: s = " ...

  6. 编写函数判断一个数是否是回文数_程序员面试金典 - 面试题 01.04. 回文排列

    题目难度: 简单 原题链接 题目描述 给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一. 回文串是指正反两个方向都一样的单词或短语.排列是指字母的重新排列. 回文串不一定是字典当中的单词. ...

  7. [Leetcode][程序员面试金典][面试题08.03][JAVA][魔术索引][递归][优化]

    [问题描述][简单] [解答思路] 1. 逐个查找 时间复杂度:O(N) 空间复杂度:O(1) public int findMagicIndex(int[] nums) {for (int i = ...

  8. 程序员面试金典 - 面试题 16.03. 交点(数学)

    1. 题目 给定两条线段(表示为起点start = {X1, Y1}和终点end = {X2, Y2}),如果它们有交点,请计算其交点,没有交点则返回空值. 要求浮点型误差不超过10^-6.若有多个交 ...

  9. 程序员面试金典 - 面试题 10.03. 搜索旋转数组(二分查找)

    1. 题目 搜索旋转数组.给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详. 请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的.若有多个相同元素,返回索引值最小 ...

最新文章

  1. Android--手势触控屏幕控制/GestureDetector
  2. docker 容器监控_以简便的方式监控Docker容器中的ADF应用程序
  3. 只想在老家找份工作很难吗_当您只想完成工作时,为什么公开工作会很困难
  4. 二:前端css,即选择器
  5. sql 触发器未触发_SQL触发器–综合指南
  6. openai-gpt_GPT-3是“人类”吗?
  7. mysql 批量插入 性能_MySQL批量插入数据性能比较
  8. ACCESS入门教程(五)数据的类型和属性
  9. 大白话式粗浅地聊聊NLP语言模型
  10. vue.runtime.esm.js?2b0e:619 [Vue warn]: Error in v-on handler (Promise/async): “Error: 失败“found in
  11. Unity 截取3D图像 与 画中画PIP的实现
  12. 深度解析:电商直播基地运营及盈利模式
  13. python 游戏开发jumpy platform 终板
  14. 3.3程序设计框架架构基础相关知识点-技术
  15. jquery字符串相等判断
  16. 读NeurIPS 2018 accepted paper list的十点感想
  17. 记事本带计算机手机版,有什么手机和电脑能同步的便签记事本
  18. 【金融案例分析04】阿姆斯特丹股票交易所的历史(世界上最早的永续债券股票股票基金、郁金香泡沫、荷兰皇家壳牌集团、东印度公司)
  19. codewars练习记录20 js
  20. android上实时多点找色,多点找色进阶 - 【201512期】

热门文章

  1. python中函数的参数传递(传值还是传引用)
  2. Python学习之路——装饰器
  3. ABP框架详解(八)动态ApiController的生成和访问机制
  4. 为什么引入Memcached?
  5. 采用java信号量(semaphore)让线程轮流打印
  6. sql 查讯本日 本周 本月
  7. 方向盘开极品飞车9很Hapyy
  8. Service rootservice does not have a SELinux domain defined
  9. 每日一题(42)—— 已知一个数组table,用一个宏定义,求出数据的元素个数
  10. modbus协议手册_20种PLC元件编号和Modbus编号地址对应表