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)