字符串【1-4】、链表【5-7】、双指针【8-14】、栈和队列【15-18】

字符串

LC.122 路径加密

在这里插入图片描述

class Solution:
    def pathEncryption(self, path: str) -> str:
        ss = path.split('.')
        return ' '.join(ss)

LCR 182.动态口令

在这里插入图片描述

class Solution:
    def dynamicPassword(self, password: str, target: int) -> str:
        return password[target:] + password[:target]

LCR138.有效数字【?】

在这里插入图片描述
在这里插入图片描述

class Solution:
    def validNumber(self, s: str) -> bool:
        states = [
            { ' ': 0, 's': 1, 'd': 2, '.': 4 }, # 0. start with 'blank'
            { 'd': 2, '.': 4 } ,                # 1. 'sign' before 'e'
            { 'd': 2, '.': 3, 'e': 5, ' ': 8 }, # 2. 'digit' before 'dot'
            { 'd': 3, 'e': 5, ' ': 8 },         # 3. 'digit' after 'dot'
            { 'd': 3 },                         # 4. 'digit' after 'dot' (‘blank’ before 'dot')
            { 's': 6, 'd': 7 },                 # 5. 'e'
            { 'd': 7 },                         # 6. 'sign' after 'e'
            { 'd': 7, ' ': 8 },                 # 7. 'digit' after 'e'
            { ' ': 8 }                          # 8. end with 'blank'
        ]
        p = 0                           # start with state 0
        for c in s:
            if '0' <= c <= '9': t = 'd' # digit
            elif c in "+-": t = 's'     # sign
            elif c in "eE": t = 'e'     # e or E
            elif c in ". ": t = c       # dot, blank
            else: t = '?'               # unknown
            
            if t not in states[p]: 
            	return False
            	
            p = states[p][t]
        return p in (2, 3, 7, 8)

LCR192.把字符串转换成整数

链表

LCR123. 图书整理I

在这里插入图片描述

递归

class Solution:
    def reverseBookList(self, head: Optional[ListNode]) -> List[int]:
        if not head: 
            return []
        else:
            return self.reverseBookList(head.next) + [head.val] 

辅助栈

class Solution:
    def reverseBookList(self, head: ListNode) -> List[int]:
        stack = []
        while head:
            stack.append(head.val)
            head = head.next
        return stack[::-1]

LCR141.训练计划3

在这里插入图片描述

class Solution:
    def trainningPlan(self, head: ListNode) -> ListNode:
        cur, pre = head, None
        while cur:
            tmp = cur.next # 暂存后继节点 cur.next
            cur.next = pre # 修改 next 引用指向
            pre = cur      # pre 暂存 cur
            cur = tmp      # cur 访问下一节点
        return pre

LCR154.复杂链表的复制

在这里插入图片描述

LCR136.删除链表的节点在这里插入图片描述

class Solution:
    def deleteNode(self, head: ListNode, val: int) -> ListNode:
        dummyHead = ListNode(-1, head) 
        cur = dummyHead 
        while cur.next: 
            if cur.next.val == val: 
                cur.next = cur.next.next
                break
            else: 
                cur = cur.next 
        return dummyHead.next

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值