当前位置:网站首页>Leetcode——剑指 Offer 05. 替换空格
Leetcode——剑指 Offer 05. 替换空格
2022-07-07 12:15:00 【styfish】
概述
分析
这题,如果不限制空间复杂度,其实很简单,直接开一个新的
string
就可以实现了但是,如果要求只能原理处理呢?这里有一个问题需要解决:
s --> %20
,增加了字符,需要增加striing的容量因为
push_back
之能最末尾操作
思路
增加容量
- 可以先遍历一遍string,统计空格的个数,就可以知道最终需要扩充的大小了
- 然后利用
resize()
来扩充大小
代码
class Solution {
public:
string replaceSpace(string s) {
int count = 0; // 统计空格的个数
int sOldSize = s.size();
for (int i = 0; i < s.size(); i++) {
if (s[i] == ' ') {
count++;
}
}
// 扩充字符串s的大小,也就是每个空格替换成"%20"之后的大小
s.resize(s.size() + count * 2);
// 为了原地操作,所以使用双指针法
int ptr = s.size() - 1, wokr_ptr = sOldSize - 1;
// 这里要从后往前,因为如果添加新元素从前往后,会覆盖掉原始的元素(
for(; wokr_ptr >= 0; --wokr_ptr) {
if (s[wokr_ptr] != ' ') s[ptr--] = s[wokr_ptr];
else {
s[ptr] = '0';
s[ptr - 1] = '2';
s[ptr - 2] = '%';
ptr -= 3;
}
}
return s;
}
};
边栏推荐
- 内存溢出和内存泄漏的区别
- How does MySQL control the number of replace?
- Common response status codes
- [untitled]
- VSCode 配置使用 PyLint 语法检查器
- 常用数字信号编码之反向不归零码码、曼彻斯特编码、差分曼彻斯特编码
- Laravel5 call to undefined function openssl cipher iv length() 报错 PHP7开启OpenSSL扩展失败
- Excusez - moi, l'exécution a été réussie lors de l'utilisation des données de puits SQL Flink à Kafka, mais il n'y a pas de nombre dans Kafka
- 数据流图,数据字典
- Csma/cd carrier monitoring multipoint access / collision detection protocol
猜你喜欢
2022-7-6 sigurg is used to receive external data. I don't know why it can't be printed out
使用day.js让时间 (显示为几分钟前 几小时前 几天前 几个月前 )
How to check the ram and ROM usage of MCU through Keil
Vscode configuration uses pylint syntax checker
Vmware共享主机的有线网络IP地址
PERT图(工程网络图)
Dry goods | summarize the linkage use of those vulnerability tools
2022-7-6 Leetcode 977. Square of ordered array
最长上升子序列模型 AcWing 1014. 登山
Battle Atlas: 12 scenarios detailing the requirements for container safety construction
随机推荐
mysql ”Invalid use of null value“ 解决方法
[network security] SQL injection syntax summary
mysql导入文件出现Data truncated for column ‘xxx’ at row 1的原因
Did login metamask
内存溢出和内存泄漏的区别
Laravel5 call to undefined function openssl cipher iv length() 报错 PHP7开启OpenSSL扩展失败
Leetcode simple question sharing (20)
常用數字信號編碼之反向不歸零碼碼、曼徹斯特編碼、差分曼徹斯特編碼
Parsing of XML files
XML文件的解析操作
Attribute keywords aliases, calculated, cardinality, ClientName
AutoCAD - how to input angle dimensions and CAD diameter symbols greater than 180 degrees?
How to check the ram and ROM usage of MCU through Keil
"Song of ice and fire" in the eleventh issue of "open source Roundtable" -- how to balance the natural contradiction between open source and security?
ndk初学习(一)
請問,在使用flink sql sink數據到kafka的時候出現執行成功,但是kafka裏面沒有數
TPG x AIDU | AI leading talent recruitment plan in progress!
Introduction to sakt method
call undefined function openssl_cipher_iv_length
C # use TCP protocol to establish connection