这道题是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 位运算解法。↑↑↑