Leetcode刷题笔记1 字符串part01

leetcode344 翻转字符串

简单题 不过使用双指针法提升双指针熟练度

class Solution:
    def reverseString(self, s: List[str]) -> None:
        left, right = 0, len(s)-1
        while left < right:
            s[left],s[right] = s[right],s[left]
            left += 1
            right -= 1

leetcode 541 反转代码||

本题在反转时遇到的问题是reverse函数的错误使用,因为s[i : i + k] 只是取出了 s 的一个切片,但 .reverse() 只会作用于这个新切片,而不会修改原始 s 列表。因此,字符串的翻转并不会真正生效。因此需要用 reversed()[::-1] 重新赋值,这样才能修改 s 列表本身。

class Solution:
    def reverseStr(self, s: str, k: int) -> str:
        s = list(s)
        for i in range(0, len(s), 2 * k):
            s[i : i + k] = s[i : i + k][::-1]
        return ''.join(s)

卡码网 54 替换数字

本题在判断数字时调用的库函数isidigit(),对于acm输入输出还不够熟练

import sys

def replace_digit(s: str) -> str:
    return ''.join('number'if i.isdigit() else i for i in s)

def main():
    for line in sys.stdin:
        s = line.strip()
        print(replace_digit(s))

if __name__ == "__main__":
    main()

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值