Python Leecode709. 转换成小写字母

MmoMartin · 2020年06月16日 · 最后由 sharpdeep 回复于 2020年06月17日 · 2355 次阅读

最近想刷题目,但是难度高的,又烧脑,所以就挑些简单的,但是有些题目也太简单了,但是勿以善小而不为。比如这道题

709. 转换成小写字母

难度 Easy

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

示例 1:

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

示例 2:

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

示例 2:

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

解题思路:我接触到这道题目时,是借助 python 的内部 str 函数的 isalpha() 与 isupper() 完成代码。代码如下:

class Solution:
    def toLowerCase(self, str: str) -> str:
        str_new = ''
        for i in str:
            if i.isalpha() and i.isupper():
                str_new += i.lower()
            else:
                str_new += i
        return str_new

之所以说勿以善小而不为这句话应用到这里来是因为若不借助 python 的内建函数库,需要怎么解决了,是否达到理想的运行速度。
这需要我们自己去构建函数 isalpha() 与 isupper() 并调用它。这个留着,慢慢玩。

共收到 7 条回复 时间 点赞

你都用到了 lower() 了,还判断啥。

YueChen 回复

算几种方式吧,在某种情况下 我的执行速度会快上不少,你多执行几遍

3楼 已删除

我见到这道题,第一反应是用 ASCII 码做运算。楼主思路基本是对的,只是这么用有点怪怪的。

lower() 本身就内置了判定是否字母和非大写字母不转换的逻辑,所以如果用自带的函数库,这里的最简单解法应该是

class Solution:
    def toLowerCase(self, str: str) -> str:
        return str.lower()

在论坛上我见过很多介绍 LEETCODE 的,但一般很少有能坚持的。
希望楼主能坚持。

magicyang 回复

嗯 我希望我可以坚持到底

陈恒捷 回复

嗯 是滴

1.跟楼上一样,第一反应是用 ASCII 码
2.不建议字符串拼接,可以使用 list 接收,最后再 join

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册