num

剑指offer-丑数

隐身守侯 提交于 2020-01-26 10:18:37
题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 思路 1.首先是怎么判断一个数是丑数? 如果能被2整除,那就让它连续除以2,直到不能再除了, 如果能被3整除,那就让它连续除以3,直到不能再除了 如果能被5整除,那就让它连续除以5,直到不能再除了 如果最后结果是1的话,那它就是一个丑数,否则就不是 public boolean isUgly ( int num ) { if ( num < 1 ) return false ; if ( num == 1 ) return true ; while ( num % 2 == 0 ) { num /= 2 ; } while ( num % 3 == 0 ) { num /= 3 ; } while ( num % 5 == 0 ) { num /= 5 ; } return num == 1 ? true : false ; } 那么就进行遍历数字,直到找到第N个丑数 public class Solution { public int GetUglyNumber_Solution ( int index ) { if ( index < 1 ) return 0 ; int digit =

火车票查询系统(一)——利用python实现监控12306余票查询

a 夏天 提交于 2020-01-26 09:50:52
最近春运高峰,本人从12月开始买过年回家的火车票,然鹅~现实总是那么残酷,放票时间记不住,要么就是不能实时盯着刷票,外面的软件也不知道靠不靠谱,反正是没买到票,所以一怒之下,自己做一个12306余票查询系统,可以实现以下一些功能: 1. 设置目标位置进行查询余票 2. 通过设定条件监控到余票后进行12306账号登录 3. 12306登录及图片识别(自动登录功能) 4. 自动下单功能 5. 邮件通知付款功能 ok,整个博客内容包括以上代码实现,我们按照惯例,循序渐进,先讲第一篇【实现12306余票查询】 -----------------------------------------------------我是分割线、 第一步:查看12306查询接口 通过截图我们可以看到,查询接口是: https : // kyfw . 12306. cn / otn / leftTicket / queryZ?leftTicketDTO . train_date = 2020 - 01 - 16 & leftTicketDTO . from_station = SZQ & leftTicketDTO . to_station = SHH & purpose_codes = ADULT 即 https://kyfw.12306.cn/otn/leftTicket/queryZ + data +

leetcode刷题记第14题解法(python解析)

感情迁移 提交于 2020-01-26 08:48:43
leetcode刷题记--> 14题解法(python解析) 题目定义 解题 1. 暴力解法 2. 垂直扫描 3. 利用zip函数 4. ascII码排序比较 5. os库 实现 题目定义 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。 说明: 所有输入只包含小写字母 a-z 。 来源:力扣(LeetCode) 链接: leetcode_14题 . 解题 本次使用4种方法,在leetcode上还有更多的方法,只能说真牛逼,真聪明。 1. 暴力解法 2. 垂直扫描 我们从前往后枚举字符串的每一列,先比较每个字符串相同列上的字符(即不同字符串相同下标的字符)然后再进行对下一列的比较。 3. 利用zip函数 利用python的zip函数,把str看成list然后把输入看成二维数组,左对齐纵向压缩,然后把每项利用集合去重,之后遍历list中找到元素长度大于1之前的就是公共前缀 4. ascII码排序比较 利用python的max()和min(),在Python里字符串是可以比较的,按照ascII值排,举例abb, aba,abac,最大为abb

JS顶级对象window

梦想的初衷 提交于 2020-01-26 08:48:23
<script type="text/javascript"> var num = 100; alert(num); window.alert(window.num); function f1() { window.alert('哈哈哈'); } window.f1(); //在js中声明的变量,方法都属于window,所以window是顶级对象 </script> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <meta charset="utf-8" /> <script type="text/javascript"> window.onload = function () { //alert(window.fm.btn.value);//层级多的话使用不方便 alert(document.getElementById("btn").value);//推荐使用 } </script> </head> <body> <form action="/" method="post" id="fm"> <input type="button" name="name" value="HH" id="btn" /> </form> <

归并排序

会有一股神秘感。 提交于 2020-01-26 05:21:15
归并排序的优点 相比于冒泡排序,归并排序的效率更高,它的效率为O(nlogn),而且比起快速排序,归并排序更加稳定。 归并排序的原理 要将一组乱序的数字排列成有序,用归并来思考,就是分治,即大化小,化为最小的有序数字,即只有一个数字时,合并到上一步,将小化大。 步骤为下面的GIF: 用更加清楚的图表现它: 简而言之,就是将小的子序列排序为有序序列合并,这样就没有冒泡的反复比较大小交换的过程,效率更高了。 归并排序的实现 完整代码如下: #include<stdio.h> #include<string.h> void swap(int *a,int *b) { int temp; temp=*a; *a=*b; *b=temp; } void Merge(int *num,int left,int middle,int right) { for(int i=middle+1;i<=right;i++) { for(int j=i;j>left;j--) { if(num[j]>num[j-1]) swap(&num[j],&num[j-1]); } } } void Mergesort(int *num,int left,int right) { if(left<right)//当左右相遇时,递归中止 { int middle=(left+right)/2;/

TPY102超声波避障小车

邮差的信 提交于 2020-01-26 03:27:59
# main.py -- put your code here! import pyb from pyb import Pin import time left_pin1 = Pin('Y3',Pin.OUT_PP) left_pin2 = Pin('Y4',Pin.OUT_PP) right_pin1 = Pin('Y5',Pin.OUT_PP) right_pin2 = Pin('Y6',Pin.OUT_PP) Trig = Pin('Y2', Pin.OUT_PP) Echo = Pin('Y1', Pin.IN) # 数码管a~g dp对应的开发板引脚'X1', 'X2', 'X3', 'X4', 'X5', 'X6', 'X7', 'X8',用于控制每一位上七个数码管加一个小数点的高低电平。 d_Pins = [Pin(i, Pin.OUT_PP) for i in ['X1', 'X2', 'X3', 'X4', 'X5', 'X6', 'X7', 'X8']] # 数码管位段1 2 3 4对应的引脚'Y9','Y10','Y11','Y12' , 'Y9','Y10','Y11','Y12'对应个位十位百位千位。当1234中的一个为高电平,其他的为低电平时,高电平那一位的七段数码管可以进行编辑 w_Pins = [Pin(i, Pin.OUT_PP) for i in

入门者 pat basic 练习十三 数素数

ⅰ亾dé卋堺 提交于 2020-01-26 03:08:09
题目: 令 P​i​​ 表示第 i 个素数。现任给两个正整数 M≤N≤10​4​​,请输出 P​M​​ 到 P​N​​ 的所有素数。 输入格式: 输入在一行中给出 M 和 N,其间以空格分隔。 输出格式: 输出从 P​M​​ 到 P​N​​ 的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。 输入样例: 5 27 输出样例: 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 思路: 应该先找到第M个素数和第N个素数,然后在这个区间里遍历找素数,找到素数后就按照格式输出 代码: #include<iostream> #include<cmath> using namespace std; bool isPrime(int num); int main() { int m,n,less_prime,greater_prime,t=2,count_num=0,count_row=0; bool getLess=false; cin>>m>>n; while(true) { if(isPrime(t)) count_num++; if(count_num==m&&!getLess)//getLess的目的是因为count_num可能在几次循环中都是等于m的

【Python基础学习笔记day17】python函数进阶+函数参数和返回值的作用+函数的返回值 进阶+温度和湿度测量+交换两个数字+函数的参数 进阶+不可变和可变的参数+缺省参数+函数的递归

泪湿孤枕 提交于 2020-01-26 02:42:36
函数进阶 文章目录 函数进阶 目标 01. 函数参数和返回值的作用 1.1 无参数,无返回值 1.2 无参数,有返回值 1.3 有参数,无返回值 1.4 有参数,有返回值 02. 函数的返回值 进阶 示例 —— 温度和湿度测量 面试题 —— 交换两个数字 解法 1 —— 使用其他变量 解法 2 —— 不使用临时变量 解法 3 —— Python 专有,利用元组 03. 函数的参数 进阶 3.1. 不可变和可变的参数 面试题 —— `+=` 3.2 缺省参数 指定函数的缺省参数 缺省参数的注意事项 1) 缺省参数的定义位置 2) 调用带有多个缺省参数的函数 3.3 多值参数(知道) 定义支持多值参数的函数 多值参数案例 —— 计算任意多个数字的和 元组和字典的拆包(知道) 04. 函数的递归 4.1 递归函数的特点 4.2 递归案例 —— 计算数字累加 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数根据 有没有参数 以及 有没有返回值 ,可以 相互组合 ,一共有 4 种 组合形式 无参数,无返回值 无参数,有返回值 有参数,无返回值 有参数,有返回值 定义函数时, 是否接收参数,或者是否返回结果 ,是根据 实际的功能需求 来决定的! 如果函数 内部处理的数据不确定 ,就可以将外界的数据以参数传递到函数内部

异常处理

♀尐吖头ヾ 提交于 2020-01-26 02:25:54
异常处理 异常分为两类 一类异常是语法错误 空格 缩进 语法规则错误 这类错误应该在写代码时就避免掉 一类异常时逻辑错误 比如input用户输入非法或不完整 这类错误可以在程序中写代码处理 异常处理 运行程序时,遇到错误就要实事先去处理,让程序不因报错而提前结束 可以提高用户体验,提高容错性 先认识一下常见的异常 name NameError 不定义一个变量就直接使用1/0 ZeroDivisionError 不能除以一个0l = []l[1] IndexError 超出了索引范围int('aaa') ValueError 强行转换数据的时候给了一个错误的内容d = {}d['key'] KeyError 字典取一个不存在的keyclass A:passA.Country AttributeError 访问一个不存在的属性a = 1a() # TypeError 一个不可被调用的内容被调用了import aaa # ModuleNotFoundError 找不到你要调用的模块 处理异常的方法 单分支 try: 可能发生异常的代码 except 错误类型: 处理异常 l = ['apple','banana','umbrella'] for num,goods in enumerate(l,1): print(num,goods) try: choose = int(input(

异常处理

不羁的心 提交于 2020-01-26 02:25:37
一、异常和错误 1、语法错误(这种错误根本过不了python解释器的语法检测,必须在程序执行前就改正),如下示例: # 语法错误示范一 if # 语法错误示范二 def test: pass # 语法错误示范三 print(haha # 错误提示都为:SyntaxError: invalid syntax 语法错误   2、逻辑错误,如下示例: # 用户输入不完整(比如输入为空)或者输入非法(输入不是数字) num = input(">>: ") int(num) # 无法完成计算 res1 = 1/0 res2 = 1 + 'str' 逻辑错误 二、什么是异常 异常就是程序运行时发生报错的信号,类似如下信息:     Traceback (most recent call last):   File "E:/pythonDemo/1-basis/test20.py", line 43, in <module>   int(num)     ValueError: invalid literal for int() with base 10: 't'   当异常发生之后,异常之后的代码就不执行了。   什么时候最容易出异常?     当你要处理的内容不确定的时候(有用户参与、有外界数据接入 : 从文件中读或者从网络上获取)。   当有多行报错的时候是为什么?