【LeetCode】To Lower Case(转换成小写字母)

这道题是LeetCode里的第709道题。

题目要求:

实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。

 

示例 1:

输入: "Hello"
输出: "hello"

示例 2:

输入: "here"
输出: "here"

示例 3:

输入: "LOVELY"
输出: "lovely"

这么简单的题,还要啥解析啊!

解题代码:

class Solution {
public:
    string toLowerCase(string str) {
        string res;
        for(int i=0;i<str.length();i++){
            if(str[i]>='A'&&str[i]<='Z')
                res+=str[i]+32;
            else
                res+=str[i];
        }
        return res;
    }
};

提交结果:

个人总结:

这是我 LeetCode 中文版的第一道题。说说我的做题方法:先分析哪些要点,在纸质笔记本上记下来,然后针对要点查资料写解决方法,然后写代码,在本地测试通过后再提交,一次过,感觉不错!做好做题的笔记很重要!关键点想全了,写代码会很快,分析为 8,写代码为 2,28 法则!

哦忘了,我这道题还先用 windows 自带的画图功能,画了一张内存图。

这题简单到题友都怀疑人生了!

func toLowerCase(str string) string {
	letter := map[byte]byte{
		'A': 'a',
		'B': 'b',
		'C': 'c',
		'D': 'd',
		'E': 'e',
		'F': 'f',
		'G': 'g',
		'H': 'h',
		'I': 'i',
		'J': 'j',
		'K': 'k',
		'L': 'l',
		'M': 'm',
		'N': 'n',
		'O': 'o',
		'P': 'p',
		'Q': 'q',
		'R': 'r',
		'S': 's',
		'T': 't',
		'U': 'u',
		'V': 'v',
		'W': 'w',
		'X': 'x',
		'Y': 'y',
		'Z': 'z',
	}

	byteStr := []byte(str)

	for i := 0; i < len(byteStr); i++ {
		if val, ok := letter[byteStr[i]]; ok {
			byteStr[i] = val
		}

	}

	return string(byteStr)
}

↑↑↑这是 Go 语言的狼人解法。↑↑↑

/**
 * @param {string} str
 * @return {string}
 */
var toLowerCase = function(str) {
    return str.toLowerCase()
};

↑↑↑这是 JavaScript 的懒人解法。↑↑↑

# @param {String} str
# @return {String}
def to_lower_case(str)
    down = "abcdefghijklmnopqrstuvwxyz"
    up = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    result = ""
    str.each_char do |char|
    if up.include?(char)
        char = down[up.index(char)]
        result << char
    else
        result << char
    end
    end
    return result
end

↑↑↑很奇特的 Ruby 解法。↑↑↑

/**
 * @param {string} str
 * @return {string}
 */
var toLowerCase = function(str) {
    return str.split('').map( i => String.fromCharCode(i.charCodeAt()|32) ).join('')
};

↑↑↑看不懂的 JavaScript 解法。↑↑↑

class Solution:
    def toLowerCase(self, str: str) -> str:
        trans = str.maketrans('ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')
        return str.translate(trans)

↑↑↑看不懂的 Python 3 解法。↑↑↑

/**
 * @param {string} str
 * @return {string}
 */
var toLowerCase = function(str) {
//     let chars = str.split('');
    
//     chars.forEach((char) => {
//         if (char >= 'A') {
//             char -= 'A'
//         }
//     })
    return str.toLowerCase();
};

↑↑↑JavaScript 范例解法hhh。↑↑↑

/**
 * @param {string} str
 * @return {string}
 */
var toLowerCase = function(str) {
    str = [...str];
    for(let i = 0 ; i < str.length ; i++){
        str[i] = str[i].charCodeAt();
        str[i] = str[i] |= 32;
        str[i] = String.fromCharCode(str[i]);
    }
    return str.join("");
};

↑↑↑JavaScript 位运算解法。↑↑↑

posted @ 2019-03-23 16:26  1000sakura  阅读(249)  评论(0编辑  收藏  举报