程序员面试金典 - 面试题 01.03. URL化(字符串)
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化(字符串)相关推荐
- 程序员面试金典 - 面试题 10.03. 搜索旋转数组
题目难度: 中等 原题链接 今天继续更新程序员面试金典系列, 大家在公众号 算法精选 里回复 面试金典 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 搜索旋转数组.给定一个排序后的数组 ...
- 程序员面试金典面试题 01.06. 字符串压缩
前言 本系列文章为<程序员面试金典>刷题笔记. 题目位置:字符串压缩 题集:程序员面试金典 题目 字符串压缩.利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能.比如,字符串a ...
- 程序员面试金典 - 面试题 05.03. 翻转数位(位运算)
1. 题目 给定一个32位整数 num,你可以将一个数位从0变为1.请编写一个程序,找出你能够获得的最长的一串1的长度. 示例 1: 输入: num = 1775(11011101111) 输出: 8 ...
- 程序员面试金典 - 面试题 01.02. 判定是否互为字符重排(哈希map)
1. 题目 给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串. 示例 1: 输入: s1 = "abc", s2 = &qu ...
- 程序员面试金典 - 面试题 01.01. 判定字符是否唯一(位运算,牛)
1. 题目 实现一个算法,确定一个字符串 s 的所有字符是否全都不同. 示例 1: 输入: s = "leetcode" 输出: false 示例 2: 输入: s = " ...
- 编写函数判断一个数是否是回文数_程序员面试金典 - 面试题 01.04. 回文排列
题目难度: 简单 原题链接 题目描述 给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一. 回文串是指正反两个方向都一样的单词或短语.排列是指字母的重新排列. 回文串不一定是字典当中的单词. ...
- [Leetcode][程序员面试金典][面试题08.03][JAVA][魔术索引][递归][优化]
[问题描述][简单] [解答思路] 1. 逐个查找 时间复杂度:O(N) 空间复杂度:O(1) public int findMagicIndex(int[] nums) {for (int i = ...
- 程序员面试金典 - 面试题 16.03. 交点(数学)
1. 题目 给定两条线段(表示为起点start = {X1, Y1}和终点end = {X2, Y2}),如果它们有交点,请计算其交点,没有交点则返回空值. 要求浮点型误差不超过10^-6.若有多个交 ...
- 程序员面试金典 - 面试题 10.03. 搜索旋转数组(二分查找)
1. 题目 搜索旋转数组.给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详. 请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的.若有多个相同元素,返回索引值最小 ...
最新文章
- Android--手势触控屏幕控制/GestureDetector
- docker 容器监控_以简便的方式监控Docker容器中的ADF应用程序
- 只想在老家找份工作很难吗_当您只想完成工作时,为什么公开工作会很困难
- 二:前端css,即选择器
- sql 触发器未触发_SQL触发器–综合指南
- openai-gpt_GPT-3是“人类”吗?
- mysql 批量插入 性能_MySQL批量插入数据性能比较
- ACCESS入门教程(五)数据的类型和属性
- 大白话式粗浅地聊聊NLP语言模型
- vue.runtime.esm.js?2b0e:619 [Vue warn]: Error in v-on handler (Promise/async): “Error: 失败“found in
- Unity 截取3D图像 与 画中画PIP的实现
- 深度解析:电商直播基地运营及盈利模式
- python 游戏开发jumpy platform 终板
- 3.3程序设计框架架构基础相关知识点-技术
- jquery字符串相等判断
- 读NeurIPS 2018 accepted paper list的十点感想
- 记事本带计算机手机版,有什么手机和电脑能同步的便签记事本
- 【金融案例分析04】阿姆斯特丹股票交易所的历史(世界上最早的永续债券股票股票基金、郁金香泡沫、荷兰皇家壳牌集团、东印度公司)
- codewars练习记录20 js
- android上实时多点找色,多点找色进阶 - 【201512期】