面试题 01.03. URL化
面试题 01.03. URL化 简单
URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。)
示例 1:
输入:"Mr John Smith ", 13
输出:"Mr%20John%20Smith"
示例 2:
输入:" ", 5
输出:"%20%20%20%20%20"
提示:
- 从尾到头开始修改字符串通常最容易。
- 你可能需要知道空格的数量。你能数一下吗?
解答
解法一:利用 StringBuilder
public string ReplaceSpacesV2(string S, int length)
{
StringBuilder strBuilder = new StringBuilder(length); // 初始化给了部分空间,防止后续增加空间
//逐渐遍历字符串
for (int i = 0; i < length; i++)
{
//如果不是空格就加入到StringBuilder中,如果是空格
//就把"%20"加入到StringBuilder中
if (S[i] == ' ')
strBuilder.Append("%20");
else
strBuilder.Append(S[i]);
}
return strBuilder.ToString();
}
解法二: 反向遍历替换插入数组
public string ReplaceSpaces(string S, int length)
{
char[] chars = new char[S.Length]; // 空间肯定够用,题目中了说了足够
int index = S.Length - 1;
for (int i = length - 1; i >= 0; i--)
{
//如果遇到空格就把他转化为"%20"
if (S[i] == ' ')
{
chars[index--] = '0';
chars[index--] = '2';
chars[index--] = '%';
}
else
{
chars[index--] = S[i];
}
}
return new String(chars, index + 1, chars.Length - index - 1);
}
解法三: 内置函数一行流
public string ReplaceSpaces(string S, int length)
{
return S.Substring(0,length).Replace(" ", "%20");
}
面试题 01.03. URL化的更多相关文章
- 【程序员面试金典】面试题 01.03. URL化
题目 URL化.编写一种方法,将字符串中的空格全部替换为%20.假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的"真实"长度.(注:用Java实现的话,请使用字符数组实现 ...
- 经典面试题:从 URL 输入到页面展现到底发生什么?
前言 打开浏览器从输入网址到网页呈现在大家面前,背后到底发生了什么?经历怎么样的一个过程?先给大家来张总体流程图,具体步骤请看下文分解! 本文首发地址为GitHub 博客,写文章不易,请多多支持与关注 ...
- Java设计模式面试题 01 - 六大原则
Java设计模式面试题 01 - 六大原则 1. 单一职责原则 Single Responsibility Principle SRP原则 分清职责,接口一定要做到单一职责,方法也要做到,类尽量做到 ...
- Tensorflow学习笔记2019.01.03
tensorflow学习笔记: 3.2 Tensorflow中定义数据流图 张量知识矩阵的一个超集. 超集:如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S ...
- Leetcode:面试题 04.03. 特定深度节点链表
Leetcode:面试题 04.03. 特定深度节点链表 Leetcode:面试题 04.03. 特定深度节点链表 先贴一下自己写过一个模板,按层数遍历: https://www.cnblogs.co ...
- Java实现 LeetCode 面试题 01.07. 旋转矩阵(按照xy轴转+翻转)
面试题 01.07. 旋转矩阵 给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节.请你设计一种算法,将图像旋转 90 度. 不占用额外内存空间能否做到? 示例 1: 给定 mat ...
- java面试题01
一.JAVA基础 1.简述你所知道的JAVA修饰符及各自的使用机制?(public.abstract.final.synchronized.super…) 01.public:允许所有客户访问 02. ...
- c# 笔试面试题01
一.抽象与接口的区别: ,抽象(abstract): ()抽象类中可以有抽象方法,也可没有: ()抽象方法包含实现,也可以由子类实现: ()抽象类不能被sealed修饰,只能使用abstract关键字 ...
- 【web前端面试题整理03】来看一点CSS相关的吧
前言 昨天我们整理了14到js的题,今天我们再来整理14到CSS相关的题目,昨天整理时候时间有点晚了我便有点心浮气躁,里面的一些题需要再次解答,好了看看今天有些什么吧. PS:我这里挑一点来做就好了, ...
- Bone Collector(01背包+记忆化搜索)
Bone Collector Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Tota ...
随机推荐
- Rust中的函数指针
什么是函数指针 通过函数指针允许我们使用函数作为另一个函数的参数.函数的类型是 fn (使用小写的 "f" )以免与 Fn 闭包 trait 相混淆.fn 被称为 函数指针(fun ...
- 一篇文章搞定什么是nodeJs它和NPM关系与应用
现在前端的入门门槛越来越高了,不再是单纯 html+css+js,各种前端框架 层出不穷,各种ui组件库层出不穷. 模块化,打包化,各种工具库层出不穷,前端变成大前端 ,甚至前端可以搞定整个项目,通过 ...
- 2022-07-18:以下go语言代码输出什么?A:Groutine;B:Main;C:Goroutine;D:GoroutineMain。 package main import ( “f
2022-07-18:以下go语言代码输出什么?A:Groutine:B:Main:C:Goroutine:D:GoroutineMain. package main import ( "f ...
- 2021-09-22:请你判断一个 9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9
2021-09-22:请你判断一个 9x9 的数独是否有效.只需要 根据以下规则 ,验证已经填入的数字是否有效即可.数字 1-9 在每一行只能出现一次.数字 1-9 在每一列只能出现一次.数字 1-9 ...
- 解密Prompt7. 偏好对齐RLHF-OpenAI·DeepMind·Anthropic对比分析
前三章都围绕指令微调,这一章来唠唠RLHF.何为优秀的人工智能?抽象说是可以帮助人类解决问题的AI, 也可以简化成3H原则:Helpful + Honesty + Harmless.面向以上1个或多个 ...
- ODOO升级模块后到系统进入不了,报错500
有时候安装后者升级odoo相关模块后会导致系统进入不了,报错500,此时我们可以通过Odoo命令行卸载相关模块 此方法适用于在安装或升级某个模块后导致崩库,进不去桌面的情况下使用.原理是通过odoo- ...
- Ubuntu 对比 CentOS 后该如何选择?
大家阅读完以上文章觉得如何选择更适合自己?欢迎留言哦~ 本文章转载自 Linux 就该这么学(ID: linuxprobe),文章图片与文字版权属源公众号所有,未经允许,禁止二次转载. 我要投稿 本公 ...
- R 数据可视化 : 热图
本文作者蒋刘一琦,自嘲是一个有艺术追求的生信狗,毕业于浙江大学生物信息学专业,目前在复旦大学就读研究生,研究方向为宏基因组. 在生物信息领域我们常常使用 R 语言对数据可视化.在对数据可视化的时候,我 ...
- 深入分析:恒虚警率检测算法之Switch-CFAR
转发和使用请注明来源,以下为本人精心整理,还请尊重本人劳动成果与产权!由于本人现有知识和能力有限,如存在错误之处请指正!下面为正文内容: 1.S-CFAR检测算法(Switching,开关CFAR) ...
- FnOnce , FnMut <RUST>
FnOnce 1 #[lang = "fn_once"] 2 #[must_use = "closures are lazy and do nothing unless ...