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

谁都会走 提交于 2020-02-08 08:01:01

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 = Noneclass 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 = Noneclass 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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!