Count and Say
参考了讨论部分的一个解法,使用正则表达式,很有灵性!

s = '1'
for _ in range(n - 1):s = ''.join(str(len(group)) + digitfor group, digit in re.findall(r'((.)\2*)', s))
return s

首先是正则表达式((.)\2*),外括号里的模式是匹配连续的重复字符串,内括号里的是任意字符,并通过\2引用内括号,通过*贪婪匹配多个连续相同的字符。之后使用re.findall,使用效果如下:
s=’12111212121’
t=re.findall(r’((.)\2*)’, s)
print(t)
[(‘1’, ‘1’), (‘2’, ‘2’), (‘111’, ‘1’), (‘2’, ‘2’), (‘1’, ‘1’), (‘2’, ‘2’), (‘1’, ‘1’), (‘2’, ‘2’), (‘1’, ‘1’)]

First Missing Positive
第一个消失的正整数,有一个数列,从1开始找起,找到第一个不在这个数列中的正整数,要求用O(n)时间,且不能有其他空间开销

    def firstMissingPositive(self, nums):""":type nums: List[int]:rtype: int"""if len(nums) == 0:return 1i = 0while i < len(nums):if nums[i] > 0 and nums[i] != i + 1 and nums[i] <= len(nums) and nums[nums[i] - 1] != nums[i]:#nums[i], nums[nums[i]-1] = nums[nums[i]-1], nums[i]tmp = nums[nums[i] - 1]nums[nums[i]-1] = nums[i]nums[i] = tmpelse:i += 1for i in xrange(len(nums)):if nums[i] != i + 1:return i + 1return len(nums) + 1

#nums[i], nums[nums[i]-1] = nums[nums[i]-1], nums[i]该行被注释掉,加入tmp完成运算,否则会死循环,隐隐感觉这部分跟python内部机制有关,等之后再详细分析。
另外还做了一些测试:
>>> nums=[1,2]
>>> nums
[1, 2]
>>> nums[0],nums[1] = nums[1], nums[0]
>>> nums
[2, 1]
说明跟索引有关,且实际运行中该注释掉的语句完成了运行,并没有在该句死循环。

LeetCode刷题(11)相关推荐

  1. LeetCode刷题-11

    11.盛最多水的容器 中等难度题,通过率63.8% 最优解法:双指针法 分析 我们先从题目中的示例开始,一步一步地解释双指针算法的过程.稍后再给出算法正确性的证明. 题目中的示例为: [1, 8, 6 ...

  2. LeetCode刷题记录11——290. Word Pattern(easy)

    LeetCode刷题记录11--290. Word Pattern(easy) 目录 LeetCode刷题记录11--290. Word Pattern(easy) 题目 语言 思路 源码 后记 题目 ...

  3. LeetCode刷题记录4——67. Add Binary(easy)

    LeetCode刷题记录4--67. Add Binary(easy) 目录 LeetCode刷题记录4--67. Add Binary(easy) 题目 语言 思路 后记 题目 今天这题是与字符串相 ...

  4. LeetCode刷题记录1——717. 1-bit and 2-bit Characters(easy)

    LeetCode刷题记录1--717. 1-bit and 2-bit Characters(easy) LeetCode刷题记录1--717. 1-bit and 2-bit Characters( ...

  5. Leetcode刷题第1题:两数之和(基于Java语言)

    ** Leetcode刷题第1题:两数之和(基于Java语言) ** 题目: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标 ...

  6. c语言贪心算法合并箭,LeetCode刷题题库:贪心算法

    LeetCode刷题笔记:贪心算法 自大学开始,我便陆陆续续的学习一些 算法和数据结构 方面的内容,同时也开始在一些平台刷题,也会参加一些大大小小的算法竞赛.但是平时刷题缺少目的性.系统性,最终导致算 ...

  7. C#LeetCode刷题-程序员面试金典

    本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#LeetCode刷题-程序员面试金典 | .Net中文网. C#LEETCODE刷题概述 概述 所有LeetCode程序员面试金典 ...

  8. C#LeetCode刷题-剑指Offer

    本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#LeetCode刷题-剑指Offer | .Net中文网. C#LEETCODE刷题概述 概述 所有LeetCode剑指Offer ...

  9. C#LeetCode刷题-动态规划

    动态规划篇 # 题名 刷题 通过率 难度 5 最长回文子串 22.4% 中等 10 正则表达式匹配 18.8% 困难 32 最长有效括号 23.3% 困难 44 通配符匹配 17.7% 困难 53 最 ...

  10. C#LeetCode刷题-二分查找​​​​​​​

    二分查找篇 # 题名 刷题 通过率 难度 4 两个排序数组的中位数 C#LeetCode刷题之#4-两个排序数组的中位数(Median of Two Sorted Arrays)-该题未达最优解 30 ...

最新文章

  1. expdp数据泵导出操作
  2. java for 删除 list 中的项
  3. 语言 提取列名_学习健明老师发布的R语言练习题的学习笔记(二)
  4. Python:入门(3)
  5. 真香定律!一文带你搞懂Android多线程Handler,成功入职腾讯
  6. java调用一个方法后怎么继续执行不等待该方法的返回_Java面试题大全2020版(二)...
  7. C# 自定义配置文件
  8. 导入工程出错原因及解决
  9. 安卓自定义相机拍照功能全解(不调用系统相机)
  10. java学习路径1--转自byr
  11. pythonATM,购物车项目实战_补充7-start.py
  12. MATLAB 2020b 中文版安装教程(简洁版)
  13. 简单的java游戏编程代码_java游戏编程(1)线程
  14. win10LTSC(企业版)命令激活
  15. springboot中@SpringBootApplication的扫描范围,以及多模块的扫描问题
  16. 云知声发布多模态AI芯片战略,同步曝光三款在研芯片...
  17. Sharepoint安装必备组件下载地址
  18. 中国黑客生存特写,互联网金钱帝国里的英雄和盗匪
  19. python包:scikit-learn
  20. 软件测试---性能测试

热门文章

  1. Oracle中的包、存储过程、函数被锁定解决方案
  2. 博文视点大讲堂28期 “助你赢在软件外包行业”成功举办
  3. 【ADO.NET基础】加密方法公共类
  4. C语言 · 数组查找及替换
  5. vim:复制复制字符到vim的命令行窗口的4种方法
  6. ListView系列(七)——Adapter内的onItemClick监听器四个arg参数 (转)
  7. 免费资源:Polaris UI套件 + Linecons图标集(AI, PDF, PNG, PSD, SVG)
  8. 如何用HttpWebRequest下载gzip, deflate压缩的页面
  9. 登陆SQL Server 2000数据库提示超时已过期的解决方法
  10. 【报告分享】2021年Z世代“潮力量”洞察报告.pdf(附下载链接)