剑指offer--面试题4:替换空格
2016-09-26 13:16
288 查看
c++实现:
//length为牛客系统规定字符串输出的最大长度,固定为一个常数
class Solution {
public:
//直接原地修改原字符串
void replaceSpace(char *str,int length) {
if(str==NULL||length<=0)
return;
//统计空格数
int cntOfSpaces = 0, oldLen = 0;
for(int i=0; str[i]!='\0'; i++){
oldLen += 1;
if(str[i]==' ')
cntOfSpaces += 1;
}
int newLen = oldLen+cntOfSpaces*2;
if(newLen>length)//不加这一句也能ac
return;
int idx = newLen, i = oldLen;//不是newLen-1,因为还得算上最后的'\0'
while(i>=0){
if(str[i]==' '){
str[idx--]='0';
str[idx--]='2';
str[idx--]='%';
}else{
str[idx--]=str[i];
}
i--;
}
9fe9
}
};
题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。c++实现:
//length为牛客系统规定字符串输出的最大长度,固定为一个常数
class Solution {
public:
//直接原地修改原字符串
void replaceSpace(char *str,int length) {
if(str==NULL||length<=0)
return;
//统计空格数
int cntOfSpaces = 0, oldLen = 0;
for(int i=0; str[i]!='\0'; i++){
oldLen += 1;
if(str[i]==' ')
cntOfSpaces += 1;
}
int newLen = oldLen+cntOfSpaces*2;
if(newLen>length)//不加这一句也能ac
return;
int idx = newLen, i = oldLen;//不是newLen-1,因为还得算上最后的'\0'
while(i>=0){
if(str[i]==' '){
str[idx--]='0';
str[idx--]='2';
str[idx--]='%';
}else{
str[idx--]=str[i];
}
i--;
}
9fe9
}
};
相关文章推荐
- 【剑指offer】面试题5:替换空格
- 剑指offer面试题:替换空格(将字符串每个空格替换为%20)
- 剑指offer 面试题4—替换字符串中空格
- 【剑指Offer面试题】 九度OJ1510:替换空格
- 剑指offer——面试题5:替换空格
- 剑指offer-----面试题4(替换空格)
- 剑指offer面试题[4]-空格替换
- 剑指offer-面试题4 替换空格
- 【剑指offer】面试题4:替换空格
- 【剑指offer】面试题 5:替换空格
- 剑指Offer----面试题四:替换空格
- 剑指offer - 面试题4:替换空格
- 剑指offer中的面试题替换空格
- 剑指offer面试题4 替换空格
- 剑指offer-面试题4 - 替换空格
- 【剑指offer】面试题4:替换空格 java
- 【面试题】剑指Offer-4-替换空格
- 剑指Offer面试题5:替换空格程序调试与错误解决方法
- 剑指offer——面试题4:替换空格
- 剑指offer_面试题4_替换空格(注意时间效率)