为提高自己刷题的效率,特别记录做题中常用到的语法。(全是干货,建议收藏,持续更新…)*
Python
sum可对列表、元组、集合、range元素加和
语法:sum(iterable,start)
iterable – 可迭代对象,如:列表、元组、集合。
start – 指定相加的参数,如果没有设置这个值,默认为0。
sum(range(1,n+1))#输出1+2+3+..n的结果
sum(range(10))#输出45
sum([0,1,2])#输出3
sum({0,1,2})#输出3
sum({0,1,2},3)#输出6
sum([0,1,2],3)#输出6
列表长度
len(l)
列表排序
注意:该方法与l.sort()方法的区别,sort()只是一个操作不返回列表,而sorted()返回列表
sorted([6,4,5,1.5,2,1,3])#[1, 1.5, 2, 3, 4, 5, 6]
列表及字典
类型转换
return int((math.fabs(a-b) + a + b)/2)#转整型
字符串拼接
''.join(['a','b'])#'ab'
替换字符串
return '%20'.join(s.split(' '))//将字符串s中的空格部分换为%20
进制转换
bin(2)#0b10
bin(6)#0b110
bin(101)#0b1100101
***********统计二进制中1的个数
bin(2).count('1')#输出1
bin(6).count('1')#输出2
bin(101).count('1')#输出4
***********相同的转为八进制使用oct()函数,转为十六进制使用hex()函数
oct(8)#0o10
hex(16)#0x10
***********八进制、十六进制转二进制
bin(0o10)#0b1000
bin(0x10)#0b10000
***********获取ascII码使用ord()函数
ord('a')#97
Java
数组长度
A.length()//
数组排序
Arrays.sort(A)//对数组A排序
类型转换
int res = (int) ((Math.abs(c-d) + c + d)/2)//转整型
创建字符串数组
char[] array = new char[n];
String newStr = new String(array, 0, size);//字符串数组array中的数据转到一个大小为size的字符串数组中
创建集合
后续补充用法…
Set<Integer> parentSet = new HashSet<>();
遍历数组中的每个元素
for (int num : nums1){}//遍历数组nums1中的数num
创建字符串对象
可实现类似于python列表append()操作,比直接+效率高
StringBuilder res = new StringBuilder();
res.toString();//类似于python中的join操作,拼接字符串并返回
return s.replace(" ", "%20") ;//将字符串s中的空格换位%20
创建栈
后续补充用法…
可先参考这道题从尾到头打印链表中栈的使用来理解。
Stack<ListNode> stack = new Stack<ListNode>();//创建一个栈,用于存储链表的节点
获取字符串数组中的第i个字符
s.charAt(i)
二进制中1的个数
Integer.bitCount(4)//输出1
判断数组奇偶获取中值
if(n%2 == 0){//n为数组长度
mid = n/2-1;
}
else{
mid = n /2;
}