0709-To Lower Case(转换成小写字母)
这个系列算是出于个人兴趣开的一个新坑吧,最近看到同学刷LeetCode算法题,就想写写那些可以一行Python代码写出来的题目,因此本专栏的文章的解题方式效率不做保证,只为追求“一行的浪漫”。
题目
题解
简单解释一下题目,给定字符串,将其中的大写字母转化为小写字母。本题难度为Easy。
这道题如果调用编程语言的API,那么基本上都是一行的事,如s.lower()
,但是显然这不是本题的目的。
如果我们自己来实现题目的要求,应该怎么做呢?我们会很自然想到,在ASCII码中,大小写字母是相差一定的数值的,也就是说,大写字母可以通过加减某个固定的数值变为大写字母。事实上,大写字母的ASCII码范围是[65, 90]
,而小写字母的范围是[97,122]
,因此对任意大写字符c
,将其加上32都可以得到对应的小写字符。
但是,我们进一步观察一下,其实65和90的二进制表示为010
00001和010
11010,而32对应的二进制表示为001
00000,而且65和90之间的所有数的二进制表示在32的二进制表示中这个为1的位置的值都是为0
的,这代表着他们加上32绝对不会发生进位,因此可以用位运算中的或运算替代加法。
代码
因此,我们可以用如下简单的一行代码来实现这个功能,且效率很高。
class Solution:def toLowerCase(self, s: str) -> str:return "".join(chr(asc | 32) if 65 <= (asc := ord(ch)) <= 90 else ch for ch in s)
提交的反馈如下。
0709-To Lower Case(转换成小写字母)相关推荐
- 输入2个大写英文字母,调用函数CharSwap将其转换成小写字母并交换
要将两个大写英文字母转换成小写字母并交换,可以使用以下代码: def CharSwap(ch1, ch2):ch1 = ch1.lower()ch2 = ch2.lower()ch1, ch2 = c ...
- 【快乐水题】709. 转换成小写字母
原题: 力扣链接:709. 转换成小写字母 题目简述: 句子 是一个单词列表,列表中的单词之间用单个空格隔开,且不存在前导或尾随空格.每个单词仅由大小写英文字母组成(不含标点符号). 例如," ...
- c++ cstring 转换 char_LeetCode 709. 转换成小写字母
709. 转换成小写字母 Loading...leetcode-cn.com 实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回 ...
- 709. 转换成小写字母 golang 字符串处理
题目 转换成小写字母 实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串. 示例 1: 输入: "Hello& ...
- 709. 转换成小写字母
709. 转换成小写字母 给你一个字符串 s ,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串. 示例 1:输入:s = "Hello" 输出:"hello& ...
- LeetCode 709. 转换成小写字母
1. 题目 实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串. 2. 解题 char = tolower(char) ...
- LeetCode(709)——转换成小写字母(JavaScript)
实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串. 示例1: 输入: "Hello" 输出: &q ...
- 输入一个字符,判断其是否为大写字母,如果是,将他转换成小写字母;如果不是,不转换。然后输出最后得到的字符。
输入一个字符,判断其是否为大写字母,如果是,将他转换成小写字母:如果不是,不转换.然后输出最后得到的字符. 代码如下: 1 #include<stdio.h>2 int main()3 { ...
- leetcode709. 转换成小写字母 最秀狼人做法(比狠多一点)
实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串. 示例 1: 输入: "Hello" 输出: & ...
最新文章
- 35岁改行做程序员,需要勇气和决心
- CCNP实验:路由重分布注意事项
- 网站的domain不在首页的原因
- ISA2006标准版无人值守安装
- Laravel中使用Eloquent时给查询的字段设置别名
- 理解 JavaScript 的 async/await
- 孔茨的现代管理理论的十一个流派
- easyui添加删除表格任意行
- Plus One @python
- 数据结构导论(第一章概论)
- 局域网文件共享服务器速度如何提升,分享提高XP访问局域网共享文件速度的方法...
- apple id邮箱停止服务器,Apple ID被大范围停用,你可以看看这个帖子。
- Codeforces Round #531 (Div. 3) F. Elongated Matrix (状态压缩dp)
- OV9281+RK3399Pro 双摄像头移植
- Web站点的欢迎页面 web.xml - welcome-file-list
- SEO精准搜索流量的玩法
- SSMS证书已被颁发者吊销解决办法
- 构建栅格地图matlab代码
- 2020年技术领导者需要关注的5个关键领域
- gitlab:切换远程仓库