面试题 01.03: URL化

简介: 面试题 01.03: URL化

题目

题目链接

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

示例 1:

输入:"Mr John Smith    ", 13
输出:"Mr%20John%20Smith"

示例 2:

输入:"               ", 5
输出:"%20%20%20%20%20"

解题

此题和剑指 Offer 05:替换空格有相似之处。

此题字符串的真实长度,表示实际长度要大于真实长度,因此,大于真实长度的字符或者空格都是没有意义的。

统计空格的时候,直接无视后面大于真实长度的。

方法一:使用额外空间

class Solution {
public:
    string replaceSpaces(string S, int length) {
        string res;
        for(int i=0;i<length;i++){
            if(S[i]==' '){
                res+="%20"; 
            }
            else{
                res+=S[i];
            }
        }
        return  res;
    }
};

方法二:原地修改(倒序)

class Solution {
public:
    string replaceSpaces(string S, int length) {
        string res;
        //统计空格数量
        int count=0;
        for(int i=0;i<length;i++){
            if(S[i]==' ') count++;
        }
        //根据有效空格数量去扩充字符串
        S.resize(length+count*2);
        //双指针倒序遍历,i指向原始有效字符串,j指向要更新的内容。
        for(int i=length-1,j=S.size()-1;j>=0;i--,j--){
            if(S[i]!=' '){
                S[j]=S[i];       
            }
            else{
                S[j]='0';
                S[j-1]='2';
                S[j-2]='%';
                j-=2;
            }
        }
        return S;
    }
};

相关文章
|
7月前
|
Web App开发 缓存 前端开发
【面试题】从输入 URL 到页面显示,这中间发生了什么?
【面试题】从输入 URL 到页面显示,这中间发生了什么?
109 0
|
1月前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
4月前
|
缓存 网络协议 JavaScript
面试常考题:输入url到页面渲染发生了什么?(前半段)
面试常考题:输入url到页面渲染发生了什么?(前半段)
|
4月前
|
JavaScript 前端开发 网络协议
面试常考题: 输入url到页面渲染发生了什么(后半段)
面试常考题: 输入url到页面渲染发生了什么(后半段)
|
7月前
|
缓存 网络协议 前端开发
面试题:浏览器中输入URL返回页面过程?
面试题:浏览器中输入URL返回页面过程?
112 0
|
域名解析 缓存 网络协议
计算机网络面试专题:URL地址栏中输入网址到页面展示的全过程&&DNS域名解析的过程
计算机网络面试专题:URL地址栏中输入网址到页面展示的全过程&&DNS域名解析的过程
140 1
|
Web App开发 网络协议 网络安全
面试:从 URL 在浏览器被被输入到页面展现的过程中发生了什么?
经有这么一道面试题:从 URL 在浏览器被被输入到页面展现的过程中发生了什么? 相信大多数准备过的同学都能回答出来,但是如果继续问:收到的 HTML 如果包含几十个图片标签,这些图片是以什么方式、什么顺序、建立了多少连接、使用什么协议被下载下来的呢?
|
数据处理
海量数据处理面试题:给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?
海量数据处理面试题:给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?
870 0
海量数据处理面试题:给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?
|
网络协议 分布式数据库 开发工具
面试必学:输入 URL到页面的全过程-----五步完成、简单明了
面试必学:输入 URL到页面的全过程-----五步完成、简单明了
172 0
面试必学:输入 URL到页面的全过程-----五步完成、简单明了
|
安全 JavaScript 前端开发
软件测试面试题:HTML-based script与URL-based script的脚本有什么区别?
软件测试面试题:HTML-based script与URL-based script的脚本有什么区别?
91 0
下一篇
DataWorks