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

【LeetCode】To Lower Case(转换成小写字母)的更多相关文章

  1. Leetcode709.To Lower Case转换成小写字母

    实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串. 示例 1: 输入: "Hello" 输出: & ...

  2. LeetCode 709. To Lower Case (转换成小写字母)

    题目标签:String 题目让我们把大写字母转换成小写,只要遇到的是大写字母,把它 + 32 变成 小写就可以了. Java Solution: Runtime beats 100.00% 完成日期: ...

  3. Leetcode#709. To Lower Case(转换成小写字母)

    题目描述 实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串. 示例 1: 输入: "Hello" ...

  4. [Swift]LeetCode709. 转换成小写字母 | To Lower Case

    Implement function ToLowerCase() that has a string parameter str, and returns the same string in low ...

  5. 力扣(LeetCode)709. 转换成小写字母

    实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串. 示例 1: 输入: "Hello" 输出: & ...

  6. Java实现 LeetCode 709 转换成小写字母(ASCII码处理)

    709. 转换成小写字母 实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串. 示例 1: 输入: "Hell ...

  7. HDOJ/HDU 1161 Eddy's mistakes(大写字母转换成小写字母)

    Problem Description Eddy usually writes articles ,but he likes mixing the English letter uses, for e ...

  8. shell中把大写字母转换成小写字母

    shell中把大写字母转换成小写字母 参考:http://www.jb51.net/article/40257.htm echo "AABBCC" | tr "[:upp ...

  9. PHP算法之转换成小写字母

    实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串. 示例 1: 输入: "Hello"输出: &q ...

随机推荐

  1. setTimeout的核心原理和巧用

    你所不了解的setTimeout 发表于 2015年11月23日 by 愚人码头 被浏览 14,756 次 分享到: 0 小编推荐:掘金是一个高质量的技术社区,从 ECMAScript 6 到 Vue ...

  2. Ionic之button标签ng-click无反应解决

    在使用Ionic中,使用按钮的ng-click事件,竟然点击没有反应,刚开始以为自己写得方法有问题才会不起作用,自己在点击之后就console.log()一个东西,但是console也是无法反应的.& ...

  3. Linux下自动化测试环境的搭建

    1.安装Linux虚拟机,详情参考  https://blog.csdn.net/qq_22770715/article/details/78558374     https://www.cnblog ...

  4. CentOS7.2+MySQL5.7_ yum源方式_ 安装配置教程

    1)访问mysql官方网站 #访问网站 https://dev.mysql.com/downloads/file/?id=470281 2)下载安装包到linux #进入文件存放路径 cd /usr/ ...

  5. Eclipse Java类编辑器里出现乱码的解决方案

    如图:在Java Class编辑器里出现的这种乱码,非常烦人. 解决方案:Windows->Preference->General->Appearance, 在里面将Theme设置成 ...

  6. HDOJ 4509 湫湫系列故事——减肥记II(2013腾讯编程马拉松) 并查集合并区间

    发现这种合并区间的题目还可以这么玩 给你n段时间 然后问没被占用的时间是多少 题目所给的区间是右开的导致我wa 好多人5e5*1440的暴力跑出来的时间居然只是我的两倍 不懂.... 所以并查集并没有 ...

  7. DAG上的动态规划---嵌套矩形(模板题)

    一.DAG的介绍 Directed Acyclic Graph,简称DAG,即有向无环图,有向说明有方向,无环表示不能直接或间接的指向自己. 摘录:有向无环图的动态规划是学习动态规划的基础,很多问题都 ...

  8. 原生JS forEach()和map()遍历,jQuery$.each()和$.map()遍历

    一.原生JS forEach()和map()遍历 共同点: 1.都是循环遍历数组中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前 ...

  9. Web项目之Django基础

    Django目录: python项目Django(web服务) python项目Django(HTTP协议) python项目Django(Django的安装与使用) python项目Django(U ...

  10. C# 读App.config配置文件[2]: .Net Core框架

    C# 读App.config配置文件[1]:.Net Framework框架 C# 读App.config配置文件[2]: .Net Core框架 网上都是.net framework读取配置文件的方 ...