您的位置:首页 > 其它

LintCode:空格替换

2016-05-10 22:06 330 查看
LintCode:空格替换

注意事项

如果使用 Java 或 Python, 程序中请用字符数组表示字符串。

Python

方法一:这个方法没有使用字符数组,直接使用的字符串数组,虽然能通过,但是不符合要求,看方法2吧。

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 0
while ' ' in string:
m = string.index(' ')
string[m] = '%20'
length += 2
return length


方法二:

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 0
while ' ' in string:
m = string.index(' ')
n = length
length = length + 2
while n > m:
string[n+2] = string

n -= 1
string[m] = '%'
string[m+1] = '2'
string[m+2] = '0'
return length


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
if (length == 0){
return 0;
}
while(contains(string)){
int m = index(string);
int n = length;
length = length + 2;
while(n > m){
string[n + 2] = string
;
n -= 1;
}
string[m] = '%';
string[m+1] = '2';
string[m+2] = '0';
}
return length;
}

private static boolean contains(char[] string){
for(int i=0; i<string.length; i++ ){
if(string[i] == ' '){
return true;
}
}
return false;
}

private static int index(char[] string){
for(int i=0; i<string.length; i++){
if(string[i] == ' '){
return i;
}
}
return 0;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: