• 3. 无重复字符的最长子串 141. 环形链表 171. Excel表列序号 203. 移除链表元素


    3. 无重复字符的最长子串

    给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

    示例 1:

    输入: "abcabcbb"
    输出: 3
    解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
    示例 2:

    输入: "bbbbb"
    输出: 1
    解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
    示例 3:

    输入: "pwwkew"
    输出: 3
    解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
      请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    class Solution:
    def lengthOfLongestSubstring(self, s: str):
    st = {}
    i, ans = 0, 0
    for j in range(len(s)):
    if s[j] in st:
    i = max(st[s[j],i])
    ans = max(ans, j-i+1)
    st[s[j]] = j + 1
    return ans

    141. 环形链表

    给定一个链表,判断链表中是否有环。

    为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。

    示例 1:

    输入:head = [3,2,0,-4], pos = 1
    输出:true
    解释:链表中有一个环,其尾部连接到第二个节点。


    示例 2:

    输入:head = [1,2], pos = 0
    输出:true
    解释:链表中有一个环,其尾部连接到第一个节点。


    示例 3:

    输入:head = [1], pos = -1
    输出:false
    解释:链表中没有环。


     

    进阶:

    你能用 O(1)(即,常量)内存解决此问题吗?

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/linked-list-cycle
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    class ListNode(object):
    def __init__(self):
    self.val = x
    self.next = None


    class Solution:
    def hasCycle(self, head):
    fast, slow = head, head
    while fast and fast.next:
    fast, slow = fast.next.next, slow.next
    if fast == slow:
    return True
    return False

    171. Excel表列序号

    给定一个Excel表格中的列名称,返回其相应的列序号。

    例如,

    A -> 1
    B -> 2
    C -> 3
    ...
    Z -> 26
    AA -> 27
    AB -> 28
    ...
    示例 1:

    输入: "A"
    输出: 1
    示例 2:

    输入: "AB"
    输出: 28
    示例 3:

    输入: "ZY"
    输出: 701

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/excel-sheet-column-number
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    class Solution(object):
    def titleToNumber(self, s):
    """
    :type s: str
    :rtype: int
    """
    result = 0
    for i in range(len(s)):
    result *=26
    result += ord(s[i]) - ord('A') + 1
    return result

    203. 移除链表元素

    删除链表中等于给定值 val 的所有节点。

    示例:

    输入: 1->2->6->3->4->5->6, val = 6
    输出: 1->2->3->4->5
    # 203 移出链表元素
    # Definition for singly-linked list.


    class ListNode(object):
    def __init__(self, x):
    self.val = x
    self.next = None


    class Solution(object):
    def removeElements(self, head, val):
    """
    :type head: ListNode
    :type val: int
    :rtype: ListNode
    """
    dummy = ListNode(0)
    dummy.next = head
    prev, curr = dummy, dummy.next
    while curr:
    if curr.val == val:
    prev.next = curr.next
    else:
    prev = curr
    curr = curr.next
    return dummy.next


  • 相关阅读:
    C++多态的实现原理
    C++编程之面向对象的三个基本特征
    C/C++中static关键字详解
    C/C++中static关键字作用总结
    Linux防CC攻击脚本
    linux下防火墙iptables原理及使用
    linux下使用 TC 对服务器进行流量控制
    awr报告与statspack报告
    awr报告
    statspack报告
  • 原文地址:https://www.cnblogs.com/xqy-yz/p/11442969.html
Copyright © 2020-2023  润新知