楼主: 李浩泉
跳转到指定楼层
上一主题 下一主题
收起左侧

[Leetcode] LC Python 刷题笔记 有志者事竟成

   
🔗
MichaelVsauce 2020-8-12 22:08:55 | 只看该作者
全局:
楼主问一下~除了刷题之外还有没有其他需要准备的呢
回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-8-12 22:38:49 | 只看该作者
本帖为密码帖 ,请输入密码 
回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-8-12 22:43:06 | 只看该作者
全局:
MichaelVsauce 发表于 2020-8-12 22:08
楼主问一下~除了刷题之外还有没有其他需要准备的呢

除了刷题之外还有就是:

保持心态,心态,心态要稳,不能乱,告诉自己这是黎明前的黑暗。
回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-8-12 23:54:00 | 只看该作者
全局:
本帖最后由 李浩泉 于 2020-8-12 23:56 编辑
  1. '''
  2. 4.    Given a list of words and two different words word1 and word2, return the shortest distance between these two words in the list. (closest distance of a same word in a list)

  3. Input : s = “geeks for geeks contribute practice”, w1 = “geeks”, w2 = “practice”
  4. Output : 1
  5. There is only one word between closest occurrences of w1 and w2.

  6. Input : s = “the quick the brown quick brown the frog”, w1 = “quick”, w2 = “frog”
  7. Output : 2
  8. '''
  9. words = 'geeks for geeks contribute practice'
  10. word1 = 'geeks'
  11. word2 = 'practice'

  12. def helper(words,word1,word2):
  13.     words = words.split()
  14.     m = -1
  15.     n = -1
  16.     d = len(words)
  17.     for i in range(len(words)):
  18.         if words[i] == word1:
  19.             m = i
  20.         if words[i] == word2:
  21.             n = i
  22.         if m != -1 and n != -1:
  23.             d = min(abs(m-n),d)  
  24.     return d - 1

  25. print(helper(words,word1,word2))
复制代码

[/i][/i]
回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-8-13 00:06:26 | 只看该作者
本帖为密码帖 ,请输入密码 
回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-8-13 00:18:20 | 只看该作者
全局:
居然还有这种题!!!2016,DE的电面难度!!!

  1. '''
  2. 6.    Number of words in a sentence ‘Hello World’ -> 2
  3. '''

  4. s = 'Hello World'

  5. def helper(s):
  6.     return len(s.split())
  7.    
  8. print(helper(s))
复制代码

回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-8-13 00:37:26 | 只看该作者
本帖为密码帖 ,请输入密码 
回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-8-13 03:11:28 | 只看该作者
全局:
  1. '''
  2. 给一组杂乱无章的数据,存在list中,要求输出排好序的数据:
  3. 方括号里面是数字的,按照数字从小到大排序
  4. 方括号里面是字母的,按照字母的字典序排序(a在b前,b在c前)
  5. 最后是下划线结尾的,按照下划线后面的单词,字典序排序
  6. '''

  7. data = [
  8. 'Customer.library.data[21]',
  9. 'Customer.library.data[17]',
  10. 'Customer.library.data[2]',
  11. 'Customer.service.timer.doc[kcd]',
  12. 'Customer.service.timer.doc[ace]',
  13. 'Customer.service.timer.doc[fff]',
  14. 'Customer.service.timer_good',
  15. 'Customer.service.timer_bad',
  16. 'Customer.service.timer_something'
  17. ]

  18. output = [
  19. 'Customer.library.data[2]',
  20. 'Customer.library.data[17]',
  21. 'Customer.library.data[21]',
  22. 'Customer.service.timer.doc[ace]',
  23. 'Customer.service.timer.doc[fff]',
  24. 'Customer.service.timer.doc[kcd]',
  25. 'Customer.service.timer_bad',
  26. 'Customer.service.timer_good',
  27. 'Customer.service.timer_something'
  28. ]

  29. def helper(data):
  30.     new_data = []
  31.     for c in data:
  32.         if '[' in c:
  33.             c = c.replace('[','-').replace(']','')
  34.             new_data.append(c)
  35.         else:
  36.             c += '-'
  37.             new_data.append(c)
  38.     result = [item.split('-') for item in new_data]
  39.     for num in result:
  40.         if num[1].isdigit():
  41.             num[1] = int(num[1])
  42.     result.sort()
  43.     list1 = []
  44.     for num in result:
  45.         if num[1] != '':
  46.             num[1] = str([num[1]])
  47.             list1.append(''.join(num))
  48.         else:
  49.             list1.append(num[0])
  50.     return list1
  51. print(helper(data))
复制代码

回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-8-13 03:47:48 | 只看该作者
本帖为密码帖 ,请输入密码 
回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-8-13 04:11:36 | 只看该作者
全局:
  1. '''
  2. 10.    3sums

  3. Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.

  4. The solution set must not contain duplicate triplets. Example:

  5. Given array nums = [-1, 0, 1, 2, -1, -4],

  6. A solution set is:
  7. [
  8.   [-1, 0, 1],
  9.   [-1, -1, 2]
  10. ]

  11. '''

  12. def threeSum(self, nums):
  13.         """
  14.         :type nums: List[int]
  15.         :rtype: List[List[int]]
  16.         """
  17.         n = len(nums)
  18.         result = []
  19.         nums.sort()
  20.         
  21.         for i in range(n-2):
  22.             if i > 0 and nums[i] == nums[i-1]:
  23.                 continue
  24.             left = i + 1
  25.             right = n - 1
  26.             while left < right:
  27.                 total = nums[i] + nums[left] + nums[right]
  28.                 if total == 0:
  29.                     result.append([nums[i],nums[left],nums[right]])
  30.                     while left + 1 < right and nums[left] == nums[left+1]:
  31.                         left = left + 1
  32.                     left = left + 1
  33.                     while left < right - 1 and nums[right] == nums[right-1]:
  34.                         right = right - 1
  35.                     right = right - 1
  36.                 elif total < 0:
  37.                     left = left + 1
  38.                 else:
  39.                     right = right - 1
  40.         return result
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表