1 | # 序列求和 |
Java/Java学习记录
分支结构
if
switch
语法结构
1 | switch (表达式) { case 值1: |
switch语句中“表达式”计算结果只能是int,byte,short,char类型,不能是long更不能是其他的类型。
循环结构
while
do-while
for
for-each语句
Java 5之后提供了一种专门用于遍历集合的for循环——for-each循环。
1 | public class Test { |
跳转语句
跳转语句能够改变程序的执行顺序,可以实现程序的跳转。
break
break;不带标签
break label;带标签
默认情况下,break只会跳出最近的内循环。如果要跳出代码第1行的外循环, 可以为外循环添加一个标签,注意在定义标签的时候后面跟一个冒号
添加标签对于多层嵌套循环是很有必要的,适 当使用可以提高程序的执行效率。
continue
带标签
不带标签
例子
1 | package nianchu; |
小技巧
输出时可以用+号将要输出的两部分连在一起
实例:
1 | public class Test { |
获取数组的长度
numbers.length
print,printf,println的区别
1 | printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 |
1 | print就是一般的标准输出,但是不换行 |
1 | println和print基本没什么差别,就是最后会换行 |
Java/Java打印九九乘法表
1 | package nianchu; |
15.全排列
描述
给定一个数字列表,返回其所有可能的排列。
样例
样例 1:
1 | 输入:[1] |
样例 2:
1 | 输入:[1,2,3] |
实现
1 | import itertools |
22.列表扁平化
22. 列表扁平化
给定一个列表,该列表中的每个元素要么是个列表,要么是整数。将其变成一个只包含整数的简单列表。
1 | class Solution(object): |
14.二分查找
描述
给定一个排序的整数数组(升序)和一个要查找的整数target
,用O(logn)
的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1
。
1 | class Solution: |
Python/Python itertools模块
说明:
Python内置的itertools模块中包含了一系列用来产生不同款类型迭代器的函数和类,这些函数的返回值都是一个迭代器。
迭代器函数类型
无限迭代器:生成一个无限序列,比如自然序列1,2,3,4…;
有限迭代器:接受一个或多个序列作为参数,进行组合、分组和过滤
组合生成器:序列的排列、组合,求序列的笛卡尔积等
无限迭代器
组合生成器
product: product用于求多个可迭代对象的组合,它跟嵌套的for循环等价。
示例
1 | j = 0 |
permutations: 用于生成一个全排列
1 | nums = [1,2,3,4] |
combinations:用于求序列的组合
1 | nums = [1,2,3,4] |
⚠️注意区分product、permutations和combinations的区别
Python/Python小技巧
技巧
sorted()方法——可用于给字符串排序,通常是按照字母表的顺序
1 | a = "fadsfga" |
count()方法
1 | a = 'fnsadfgdsgsadfdsa' |
ord()函数
1 | ## ord()函数# ord() 函数以一个字符作为参数,返回参数对应的 ASCII 数值,便于和后面捕捉的键位关联 |
二元、三元表达式
1 | ## 二元表达式 |
randrange——获取指定范围内的随机数
1 | ## randrange---给定一个范围,获取范围之内的随机数 |
enumerate()函数
1 | '''enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标, |
小知识
Python不能直接将包含小数点的字符串’1127437398.85751’ 转换为整数
关于字典键值对的输入
1 | a = {'name' : '重庆','mather' : 'China' } |
关于字典
键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行。
字典内置函数总结:
1.cmp(dict1,dict2):比较两个元素
(比较方法见:)
2.len()计算字典元素个数,即键的总数
3.str()输出字典可打印的字符串表示
4.type返回变量的类型,如果变量是字典就返回字典类型
字典内置方法总结:
1.clear删除字典内的所有元素
2.copy返回一个字典的浅复制
3.fromkeys(sep,[,val]):创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4.get(key)返回指定键的值,如果值不在字典中就返回None
5.has_key(key)如果键在字典dict中返回true,否则返回flase
6.items:以列表返回可遍历的(键值对)元组数组
7.keys:以列表返回一个字典所有的键
8.values:以列表返回字典中的所有值
9.update(dice2):把字典dict2中键值对更新到dict中
10.pop:删除给定键key所对应的值,也一同删除了键,返回值为被删除的值
11.popitem:返回并删除字典中最后一对键和值
用字典中的元素创建一个新的字典
1 | dicts = {} |
变量可以指向函数
1 | f = abs |
函数名其实就是指向函数的变
1 | abs =10 |
传入函数
既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。
1 | # 最简单的高阶函数 |
编写高阶函数,就是让函数的参数能够接收别的函数。
把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式。
字符串操作
capitalize()函数 - 将字符串改为首位大写其余小写
title()函数 - 将字符串改为每个单词都是首字母大写其余小写份形式
Lintcode刷题/55.比较字符串
比较字符串
描述
比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是 大写字母
1 | class Solution: |
13.字符串查找
13.字符串查找
1 | class Solution: |