LintCode:空格替换

来源:互联网 发布:mac删除开机密码 编辑:程序博客网 时间:2024/06/08 17:33

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]                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];                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;    }}
0 0
原创粉丝点击