[LintCode] 空格替换

 1 class Solution {
 2 public:
 3     /**
 4      * @param string: An array of Char
 5      * @param length: The true length of the string
 6      * @return: The true length of new string
 7      */
 8     int replaceBlank(char string[], int length) {
 9         // Write your code here
10         if (!length) return 0;
11         int spaces = 0;
12         for (int i = 0; string[i]; i++)
13             if (string[i] == ‘ ‘)
14                 spaces++;
15         if (!spaces) return length;
16         int newlen = length + spaces * 2;
17         int pn = newlen - 1, p = length - 1;
18         while (p >= 0 && pn >= 0) {
19             if (string[p] == ‘ ‘) {
20                 string[pn--] = ‘0‘;
21                 string[pn--] = ‘2‘;
22                 string[pn--] = ‘%‘;
23                 p--;
24             }
25             else string[pn--] = string[p--];
26         }
27         return newlen;
28     }
29 };
时间: 2024-10-13 09:41:35

[LintCode] 空格替换的相关文章

Lintcode空格替换

替换字符串里的空格 设计一种方法,将一个字符串中的所有空格替换成 %20 .你可以假设该字符串有足够的空间来加入新的字符,且你得到的是"真实的"字符长度. class Solution { public: /** * @param string: An array of Char * @param length: The true length of the string * @return: The true length of new string */ int replaceBl

lintcode 容易题:Space Replacement 空格替换

题目: 空格替换 设计一种方法,将一个字符串中的所有空格替换成 %20 .你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度. 样例 对于字符串"Mr John Smith", 长度为 13 替换空格之后的结果为"Mr%20John%20Smith" 注意 如果使用 Java 或 Python, 程序中请用字符数组表示字符串. 解题: 表示做到的通过率最低的一道题.... 用java的字符串链接起来,然后toCharArray,然后出去接个

212 空格替换

原题网址:https://www.lintcode.com/problem/space-replacement/description 描述 设计一种方法,将一个字符串中的所有空格替换成 %20 .你可以假设该字符串有足够的空间来加入新的字符,且你得到的是"真实的"字符长度. 你的程序还需要返回被替换后的字符串的长度. 如果使用 Java 或 Python, 程序中请用字符数组表示字符串. 您在真实的面试中是否遇到过这个题?  是 样例 对于字符串"Mr John Smith

空格替换

字符串替换空格:请实现一个函数,把字符串中的每个空格替换成"%20".例如输入"we are happy.",则输出"we%20are%20happy.". #include <stdio.h> #include <assert.h> void replace_black(char *str) { assert(str); int black = 0; int oldlen = strlen(str); int newle

linux删除指定行&amp;删除行首空格&amp;替换字符

打印并删除2~1000行 nl /etc/passwd | sed '2,1000d' |more 删除行首空格 sed 's/^[][ ]*//g' file 替换分隔符 说明:文件中数据是由一个或者制表位(多个空格)分隔开的,将这些空格替换为特定字符. 解决方法:sed -e 's/[ ][ ]*/,/g' filename 或者:sed -e 's/[[:space:]][[:space:]]*/ /g' filename 这样将空格或者制表位替换为“逗号”了.

C语言之字符串数组空格替换

问题描述: 字符串替换空格:请实现一个函数,把字符串中的每个空格替换成"%20".例如输入"we are happy.",则输出"we%20are%20happy.". 代码实现: #include <stdio.h> int replace(char *p) { #if 0  while(*p!='\0')  {   if(*p==' ')   {    printf("%%20");   }   else   

将字符串中的空格替换为%20

------------------------------------------------------------------------------------------------------ 例如:有字符串we are family,实现后的字符串为we%20are%20family. 如果从前向后,遇空格替换空格,那么family必将向后移动两次:那么我们可以从后向前实现, 先预留足够的空间,先移动family,再移动are,遇空格填充即可. ------------------

剑指offer剖析__空格替换字符串问题

问题:在"we are happy"这个字符串中,将所有的空格替换成字符串%20. 分析:如果我们不定义一个新的字符数组,就在原字符数组中进行替换,要将一个字节的空格替换成三个字节的字符数组%20,这会产生数组的越界访问,如果允许我们开辟一个新的空间来存放替换后的字符串,则问题将会变得非常简单. 设置两个指针分别指向新旧字符串首元素,遍历原字符串,如果碰到空格就在新字符串上填入"%20",否则就复制元字符串上的内容. #include <stdio.h>

请实现一个函数,把字符串中的每个空格替换成“%20”

请实现一个函数,把字符串中的每个空格替换成"%20".例如输入"we are happy.",则输出"we%20are%20happy." #include<stdio.h> #include<stdlib.h> #include<string.h> int main() { char arr[] = "we are happy"; int i = 0; int j = 0; int len