这个系列算是出于个人兴趣开的一个新坑吧,最近看到同学刷LeetCode算法题,就想写写那些可以一行Python代码写出来的题目,因此本专栏的文章的解题方式效率不做保证,只为追求“一行的浪漫”。

题目

题解

简单解释一下题目,给定字符串,将其中的大写字母转化为小写字母。本题难度为Easy。

这道题如果调用编程语言的API,那么基本上都是一行的事,如s.lower(),但是显然这不是本题的目的

如果我们自己来实现题目的要求,应该怎么做呢?我们会很自然想到,在ASCII码中,大小写字母是相差一定的数值的,也就是说,大写字母可以通过加减某个固定的数值变为大写字母。事实上,大写字母的ASCII码范围是[65, 90],而小写字母的范围是[97,122],因此对任意大写字符c,将其加上32都可以得到对应的小写字符。

但是,我们进一步观察一下,其实65和90的二进制表示为01000001和01011010,而32对应的二进制表示为00100000,而且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(转换成小写字母)相关推荐

  1. 输入2个大写英文字母,调用函数CharSwap将其转换成小写字母并交换

    要将两个大写英文字母转换成小写字母并交换,可以使用以下代码: def CharSwap(ch1, ch2):ch1 = ch1.lower()ch2 = ch2.lower()ch1, ch2 = c ...

  2. 【快乐水题】709. 转换成小写字母

    原题: 力扣链接:709. 转换成小写字母 题目简述: 句子 是一个单词列表,列表中的单词之间用单个空格隔开,且不存在前导或尾随空格.每个单词仅由大小写英文字母组成(不含标点符号). 例如," ...

  3. c++ cstring 转换 char_LeetCode 709. 转换成小写字母

    709. 转换成小写字母 Loading...​leetcode-cn.com 实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回 ...

  4. 709. 转换成小写字母 golang 字符串处理

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

  5. 709. 转换成小写字母

    709. 转换成小写字母 给你一个字符串 s ,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串. 示例 1:输入:s = "Hello" 输出:"hello& ...

  6. LeetCode 709. 转换成小写字母

    1. 题目 实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串. 2. 解题 char = tolower(char) ...

  7. LeetCode(709)——转换成小写字母(JavaScript)

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

  8. 输入一个字符,判断其是否为大写字母,如果是,将他转换成小写字母;如果不是,不转换。然后输出最后得到的字符。

    输入一个字符,判断其是否为大写字母,如果是,将他转换成小写字母:如果不是,不转换.然后输出最后得到的字符. 代码如下: 1 #include<stdio.h>2 int main()3 { ...

  9. leetcode709. 转换成小写字母 最秀狼人做法(比狠多一点)

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

最新文章

  1. 35岁改行做程序员,需要勇气和决心
  2. CCNP实验:路由重分布注意事项
  3. 网站的domain不在首页的原因
  4. ISA2006标准版无人值守安装
  5. Laravel中使用Eloquent时给查询的字段设置别名
  6. 理解 JavaScript 的 async/await
  7. 孔茨的现代管理理论的十一个流派
  8. easyui添加删除表格任意行
  9. Plus One @python
  10. 数据结构导论(第一章概论)
  11. 局域网文件共享服务器速度如何提升,分享提高XP访问局域网共享文件速度的方法...
  12. apple id邮箱停止服务器,Apple ID被大范围停用,你可以看看这个帖子。
  13. Codeforces Round #531 (Div. 3) F. Elongated Matrix (状态压缩dp)
  14. OV9281+RK3399Pro 双摄像头移植
  15. Web站点的欢迎页面 web.xml - welcome-file-list
  16. SEO精准搜索流量的玩法
  17. SSMS证书已被颁发者吊销解决办法
  18. 构建栅格地图matlab代码
  19. 2020年技术领导者需要关注的5个关键领域
  20. gitlab:切换远程仓库

热门文章

  1. 使用JUnit 5 执行条件和并发测试
  2. 动态数据源切换的底层原理-DynamicDataSourceEntry
  3. 关于FactoryBean 和BeanFactory
  4. vue指令-单向和双向绑定
  5. 任务调度之Elastic-Job2
  6. DataURL:概述
  7. 多租户数据库设计方法:共享数据库表
  8. React个Vue的对比
  9. 模块-from import导入所有工具
  10. 模拟实现单链表(三级)