LeetCode开心刷题四十五天——93. Restore IP Addresses 92. Reverse Linked List II

偏执的太偏执、 2023-08-17 15:15 169阅读 0赞
  1. Restore IP Addresses

Medium

780331FavoriteShare

Given a string containing only digits, restore it by returning all possible valid IP address combinations.

Example:

  1. Input: "25525511135"
  2. Output: ["255.255.11.135", "255.255.111.35"]
  3. BONUS:
  4. 1.Python中字符串比较大小,是迭代对比的,先比较第一个元素,看谁大就是谁
  5. 如果一样再比下一个,所以35255大,但是1255255小.如果想比较字符串数值大小
  6. 应该转化为int在其前方调用int()函数
  7. 2.地址不能以0开头比如0002所以如果当前的前一个出现了0要直接舍弃
  8. class Solution(object):
  9. def restoreIpAddresses(self, s):
  10. """
  11. :type s: str
  12. :rtype: List[str]
  13. """
  14. def dfs(s,sub,ips,ip):
  15. if sub==4:
  16. if s=='':
  17. ips.append(ip[1:])
  18. return
  19. for i in range(1,4):
  20. if i<=len(s):
  21. if int(s[:i])<=255:
  22. dfs(s[i:],sub+1,ips,ip+'.'+s[:i])
  23. if s[0]=='0':break
  24. ips=[]
  25. dfs(s,0,ips,'')
  26. return ips
  27. solu=Solution()
  28. s="25525511135"
  29. print(solu.restoreIpAddresses(s))
  1. Reverse Linked List II

Medium

1463103FavoriteShare

Reverse a linked list from position m to n. Do it in one-pass.

Note: 1 ≤ mn ≤ length of list.

Example:

  1. Input: 1->2->3->4->5->NULL, m = 2, n = 4
  2. Output: 1->4->3->2->5->NULL
  3. import collections
  4. # from collections import Counter
  5. # Definition for singly-linked list.
  6. class ListNode(object):
  7. def __init__(self, x):
  8. self.val = x
  9. self.next = None
  10. class Solution(object):
  11. def reverseBetween(self,head,m,n):
  12. if head==None or head.next==None:return head
  13. # 遍历链表的题目中,虚拟节点是必须的,这样最后移动结束才能由它返回起始值
  14. dummy=ListNode(0)
  15. dummy.next=head
  16. head1=dummy
  17. # 遍历下标才是这种范围的range,计数就直接写一个迭代次数值
  18. # 不同题目给的数字不同,有的需要减一才是下标有的可以直接来,这里需要减一
  19. for i in range(m-1):
  20. head1=head1.next
  21. p=head1.next
  22. for i in range(n-m):
  23. # 链表题就是费指针,这个的核心转换思路是,把p开始指定后,每次p都会向后移位,head直接跟p后面的,p跟下下一个,head的下下一个是开始时,head后面的值
  24. tmp=head1.next
  25. head1.next=p.next
  26. p.next=p.next.next
  27. head1.next.next=tmp
  28. return dummy.next
  29. solu=Solution()
  30. head=ListNode(1)
  31. l2=ListNode(2)
  32. l3=ListNode(3)
  33. l4=ListNode(4)
  34. l5=ListNode(5)
  35. # l6=ListNode(2)
  36. head.next=l2
  37. l2.next=l3
  38. l3.next=l4
  39. l4.next=l5
  40. # l5.next=l6
  41. m=2
  42. n=4
  43. ans=solu.reverseBetween(head,m,n)
  44. while True:
  45. print(ans.val)
  46. if not ans.next:
  47. break
  48. ans=ans.next

转载于:https://www.cnblogs.com/Marigolci/p/11555419.html

发表评论

表情:
评论列表 (有 0 条评论,169人围观)

还没有评论,来说两句吧...

相关阅读