力扣每日一题 神奇字符串

博客记录了2022年10月31日的学习内容,涉及LeetCode上的神奇字符串题目,运用找规律和位运算解题,还介绍了Python列表添加元素的方法,如append、extend、insert等,不同方法对列表或元组的处理方式有差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Day 33

Date: October 31, 2022 10:20 AM
LinkedIn: https://leetcode.cn/problems/magical-string/description/
Title: 神奇字符串

找规律,位运算

参考题解481. 神奇字符串 - 力扣(Leetcode)里面的PPT真的易懂

class Solution:
    def magicalString(self, n: int) -> int:
        s = [1, 2, 2]
        i = 2
        while len(s) < n:
           # 1: 01
           # 2: 10
           # 3: 11
           # 1^3 =2 2^3 = 1
            s += [s[-1] ^ 3] * s[i] # s[i]个 s当前最后一个数与3的异或
            i += 1
        return s[:n].count(1)

列表添加元素的方法:

  • 直接链接(末尾链接列表)

    s = [1, 2, 3]
    s += [1] * n # n为添加[1]的个数
    
  • append()方法用于在列表的末尾追加元素(可以是单个元素追加,也可以是列表、元组等。)

    • 当给append()方法传递列表或者元组的时候,会将他们视为一个整体,作为一个元素添加到列表中。
t = ('bb','cc')
s.append('a')
s.append(t)
  • ****extend()****用于在列表的末尾追加元素(与append相似)
    • 与append不同的是不会把列表或者元组视为一个整体,而是将它们包含的元素逐个添加到列表中。
s.extend('a')
s.extend(t)
  • ****insert()****在列表中间某个位置插入元素(传递列表或者元组的时候,会将他们视为一个整体,作为一个元素添加到列表中。)
s.insert(index,obj) # 将obj元素插入list1列表中的index个元素位置。
s.insert(1, 'a')
s.insert(2, t)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只惠摸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值