lintcode : 空格替换
题目:
设计一种方法,将一个字符串中的所有空格替换成 %20 。你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度。
对于字符串"Mr John Smith", 长度为 13
替换空格之后的结果为"Mr%20John%20Smith"
如果使用 Java 或 Python, 程序中请用字符数组表示字符串。
解题:
表示做到的通过率最低的一道题。。。。
用java的字符串链接起来,然后toCharArray,然后出去接个和之前的一样,原来%20 表示的是一个空格。。。。。。。参考程序,直接在原char字符数组上操作,先求新的字符串数组的长度,再从后插入%20,这样就解决了,对于从后插入求解的碰到过,题目都会给这样的提示:假设该字符串有足够的空间来加入新的字符,要根据题目找答案,找思路。
Java程序:
public class Solution {
/**
* @param string: An array of Char
* @param length: The true length of the string
* @return: The true length of new string
*/
public int replaceBlank(char[] string, int length) {
// Write your code here
int reallen = length;
for(int i = 0;i<length;i++){
if(string[i] == ' ')
reallen += 2;
}
int index = reallen;
for(int i = length - 1;i>= 0 ;i-- ){
if(string[i] == ' '){
string[--index] = '0';
string[--index] = '2';
string[--index] = '%';
}else{
string[--index] = string[i];
}
}
return reallen;
}
}
总耗时: 1137 ms
Python程序:
class Solution:
# @param {char[]} string: An array of Char
# @param {int} length: The true length of the string
# @return {int} The true length of new string
def replaceBlank(self, string, length):
# Write your code here
if string==None:
return None
reallen = length
for si in string:
if si==' ':
reallen += 2
index = reallen
for i in range(length-1,-1,-1):
if string[i] == ' ':
index -= 1
string[ index ] = ''
index -= 1
string[ index ] = ''
index -= 1
string[ index ] = '%'
else:
index -= 1
string[ index ] = string[i]
return reallen
总耗时: 393 ms
lintcode : 空格替换的更多相关文章
- C# 中将多个空格替换成一个空格
2013-04-17 15:36 C# 中如何将多个空格替换成一个空格? 1 myString = Regex.Replace(myString, @"\s+", " & ...
- 【C语言】字符串替换空格:实现一个函数,把字符串里的空格替换成“%20”
//字符串替换空格:实现一个函数,把字符串里的空格替换成"%20" #include <stdio.h> #include <assert.h> void ...
- 剑指offer 1,输入一个字符串,将字符串的空格替换成%20
剑指offer 1,输入一个字符串,将字符串的空格替换成%20 function replaceSpace(str){ return str.replace(/\s/g,"% ...
- 将一个字符串中的空格替换成“%20”(C、Python)
将一个字符串中的空格替换成“%20” C语言: /* ----------------------------------- 通过函数调用,传地址来操作字符串 1.先计算出替换后的字符串的长度 2.从 ...
- shell中空格的使用;空格替换;通配符
测试: test $? -eq && echo "yes" || echo "no" 通配符: 通配符 ()*:0个或多个连续的字符 ()?:任 ...
- linux删除指定行&删除行首空格&替换字符
打印并删除2~1000行 nl /etc/passwd | sed '2,1000d' |more 删除行首空格 sed -i 's/^[][ ]*//g' file 替换分隔符 说明:文件中数据是由 ...
- c# 字符串去掉两端空格,并且将字符串中多个空格替换成一个空格
字符串去掉两端空格,并且将字符串中多个空格替换成一个空格: 主要还是考察使用字符串的方法: trim(); 去掉字符串两端空格 split(); 切割 string.join(); 连接 class ...
- LintCode-212.空格替换
空格替换 设计一种方法,将一个字符串中的所有空格替换成 %20 .你可以假设该字符串有足够的空间来加入新的字符,且你得到的是"真实的"字符长度. 你的程序还需要返回被替换后的字符串 ...
- 请实现一个函数,把字符串中的每一个空格替换成“%20”,比如输入 “We are Happly。” 则输出“we%20are%20happy。”
请实现一个函数,把字符串中的每一个空格替换成"%20",比如输入 "We are Happly." 则输出"we%20are%20happy. &q ...
随机推荐
- javascript中for-in的用法
for(var 变量名 in object) alert(变量名[第n个]) : 如果object是josn对象的话,变量名就是属性名 如果object是数组的话,变量名就是数字下标 例子:JOSN对 ...
- ASP.NET MVC + EF 利用存储过程读取大数据,1亿数据测试很OK
看到本文的标题,相信你会忍不住进来看看! 没错,本文要讲的就是这个重量级的东西,这个不仅仅支持单表查询,更能支持连接查询, 加入一个表10W数据,另一个表也是10万数据,当你用linq建立一个连接查询 ...
- Placeholdem文本域占位符符号标识JavaScript插件
Placeholdem是文本域占位符符号标识的一个JavaScript插件.占位符的值将逐步删除焦点文字,并在焦点离开逐步恢复. 在线demo:http://placeholdem.jackrugil ...
- mysql怎么从1开始递增
前提:使用SQLyog数据库管理工具 1.打开更改表: 2.点击表字段下方“高级属性”: 3.找到“自动递增”这一项,值改为1: 4.点击“确定”关闭高级属性表弹出框: 5.点击“Alter”关闭更改 ...
- HTML表单样式
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- C#中gridView常用属性和技巧介绍
.隐藏最上面的GroupPanel gridView1.OptionsView.ShowGroupPanel=false; .得到当前选定记录某字段的值 sValue=Table.Rows[gridV ...
- 通过xsd生成xml类
步骤二:使用VS2010 Tools中的命令提示窗口 如下图所示 执行结果:生成myschema.xsd对应的C#类文件. 命令剖析: /c 生成对应的类文件 /l:cs 类文件使用C#语言 /ou ...
- c语言之fopen参数(r+,w+,a+)
经查找一些资料,并且亲自实验之后得出: r+:打开已存在的文件时,光标位于开头,文件可读,可写, 写数据时,由于光标位于开头,所以会覆盖原有数据 w+:打开的文件已存在时,将覆盖原文件 a+:打开已存 ...
- Andriod wifi 基本操作
从用户角度看,Android Wi-Fi模块自下向上可以看为5层:硬件驱动程序,wpa_suppplicant,JNI,WiFi API,WifiSettings应用程序. 1.wpa_supplic ...
- cocos3.2中如何创建一个场景
1.可以将一些比较通用的东西放到Common.h中,这是一个.h文件,必须手动添加,且保证在classes目录里 #ifndef __COMMON_H__ #define __COMMON_H__ # ...