python 刷题必备
1、判断输入的数字是否是回文数:
学习内容:把数字转成字符串
1.
def is_palindrome(n):
n=str(n)
m=n[::-1]
return n==m
2.
tmp_str = str(n)
i = len(tmp_str) - 1
j = 0
while i > j :
if tmp_str[i] == tmp_str[j] :
i = i - 1
j = j + 1
pass
else :
return False
return True
如果要直接接收键盘输入的话,可以直接用raw_input()即可,这样获得的就是字符串。
2.一行输出多个数字
学习内容:如何一行输出多个数字
1.
s=[1,2,3,4,5,]
s1='%d %d %d %d %d' %(s[0],s[1], s[2], s[3], s[4])
print s1
2.转换成字符串输出:
s=[1,2,3,4,5]
s2='%s' %(' '.join(map(str,s)))
print s2
3.统计列表中元素个数
1.利用列表的count函数
mylist = [1,2,2,2,2,3,3,3,4,4,4,4]
myset = set(mylist) #myset是另外一个列表,里面的内容是mylist里面的无重复项
for item in myset:
print("the %d has found %d" %(item,mylist.count(item)))
2.利用字典
List=[1,2,2,2,2,3,3,3,4,4,4,4]
a = {}
for i in List:
#i是元素,不是索引,所以a[i]表示key
a[i] = List.count(i)
print (a)
3.利用Counter类,Counter类的学习:http://www.cnblogs.com/shixisheng/p/7410505.html
from collections import Counter
Counter([1,2,2,2,2,3,3,3,4,4,4,4])
#输出:Counter({1: 1, 2: 4, 3: 3, 4: 4})
4.把数组组成最小的数
题目描述
# -*- coding:utf-8 -*-
class Solution:
def PrintMinNumber(self, numbers):
# write code here
num_str=map(str,numbers)
if not num_str:
return ''
num_str.sort(lambda x,y:cmp(x+y,y+x))
return ''.join(num_str)
思路:用lambda表达式写一个比较规则。
自定义比较函数:http://www.cnblogs.com/shixisheng/p/7500407.html
5.字符串的全排列
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
使用递归方法:假如n-1个字符串都已经有了,那么加入第n个字符的时候,可以让n依次和前边n-1个字符进行交换。
实例代码:假如字符串strAP=['A','B','C','D']
# -*- coding:utf-8 -*- def SWAP(i, j):
temp = strAP[i]
strAP[i] = strAP[j]
strAP[j] = temp strAP = ['A', 'B', 'C', 'D']
result = []
def CalAllP1(first, num):
if first == num - 1: # 到达最后一个元素,则退出
pass
else:
for i in range(first, num):
if i != first: # 输出时去掉重复
SWAP(i, first)
temp = ''.join(strAP)
result.append(temp)
CalAllP1(first + 1, num) # 递归调用,全排列后面的元素
SWAP(i, first)# 用来复位的(前边你交换了,这里再交换回来)。 temp = ''.join(strAP)
result.append(temp)
CalAllP1(0, len(strAP))
print result
完整的代码:
# -*- coding:utf-8 -*-
class Solution:
def __init__(self):
self.strAP=[]
self.result=[]
def Permutation(self, ss):
# write code here
if not ss:
return []
self.strAP=list(ss)
temp = ''.join(self.strAP)
self.result.append(temp)
self.CalAllP1(0, len(self.strAP))
self.result=sorted(list(set(self.result)))#用set去除重复,然后再转化成list,然后再排序
return self.result def SWAP(self, i, j):
temp = self.strAP[i]
self.strAP[i] = self.strAP[j]
self.strAP[j] = temp def CalAllP1(self, first, num):
if first == num - 1: # 到达最后一个元素,则退出
pass
else:
for i in range(first, num):
if i != first: # 输出时去掉重复
self.SWAP(i, first)
temp = ''.join(self.strAP)
self.result.append(temp)
self.CalAllP1(first + 1, num) # 递归调用,全排列后面的元素
self.SWAP(i, first)#用来复位的
python 刷题必备的更多相关文章
- 再也不用c刷题了!!——c++刷题必备
致读者: 博主是一名数据科学与大数据专业大二的学生,真正的一个互联网萌新,写博客一方面是为了记录自己的学习历程,一方面是希望能够帮助到很多和自己一样处于困惑的读者.由于水平有限,博客中难免会有一些错误 ...
- Python 刷题笔记
Python 刷题笔记 本文记录了我在使用python刷题的时候遇到的知识点. 目录 Python 刷题笔记 选择.填空题 基本输入输出 sys.stdin 与input 运行脚本时传入参数 Pyth ...
- python刷题第二周
1: 第3章-5 字符转换 (15 分) 本题要求提取一个字符串中的所有数字字符('0'--'9'),将其转换为一个整数输出. 输入格式: 输入在一行中给出一个不超过80个字符且以回车结束的字符串. ...
- python刷题第四周
本周有所收获的题目: 第一题: 第4章-17 水仙花数(20 分) (20 分) 水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身. 例如:153=1×1×1+5×5×5 ...
- python刷题第三周
以下是本周有所收获的题目 第一题: 第4章-4 验证"哥德巴赫猜想" (20 分) 数学领域著名的"哥德巴赫猜想"的大致意思是:任何一个大于2的偶数总能表示为两 ...
- python刷题专用函数。。
无它,非bin()莫属. bin(x) Convert an integer number to a binary string. The result is a valid Python expre ...
- 【python刷题】LRU
什么是LRU? LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰.该算法赋予每个页面一个访问字段,用来记录一个页面自上次 ...
- Python 刷题知识点
if : elif : else : print('{0} \n{1} \n{2}' .format((a + b), (a - b), (a * b))) print(*[num**2 for nu ...
- 各种OJ网站,刷题必备
各种OJ网站 落谷 vijos JoyOI CodeVS Comet OJ 北京大学 浙江大学 杭州电子科技大学 信息学奥赛一本通 以上就是本蒟蒻所知的OJ网站 收集和打字应该值一个赞吧
随机推荐
- 【jemter】HTTP请求参数化
HTTP请求参数化:就是把URL的参数项做参数化处理 我们现在要对子猴博客来进行一番压力测试,压力测试对象为随机的几个网页链接,这几个链接是写在一个文本文件中的,在压力测试的时候会随机读取. 1. ...
- 【appium】根据xpath定位元素
1. 背景 本文尝试使用的试验对象是SDK自带的NotePad应用实例,假设已经有两个Notes分别是“note1”和“note2”添加到Notepad上面,我们要做的就是尝试用xpath的方法来定位 ...
- datacolumn 表达式 除数为0
dt.columns.add("avgp",typeof(decimal),"IIF(qty=0,0,price/qty)")
- Spring DI - 依赖注入
1.IOC(DI) - 控制反转(依赖注入) 所谓的IOC称之为控制反转,简单来说就是将对象的创建的权利及对象的生命周期的管理过程交由Spring框架来处理,从此在开发过程中不再需要关注对象的创建和生 ...
- Immunity Debugger学习笔记
图1::Immunity主界面 注意事项:最下方的PyCommands窗格既可以执行调试命令也可以执行python脚步文件. 1.PyCommands学习 在 Immunity 中执行 Python ...
- timus1745题解
一.题目链接 http://acm.timus.ru/problem.aspx?space=1&num=1745 二.题意 给定$n$个由'('和')'组成的字符串,每个串最多只能使用$1$次 ...
- 第3章 文件I/O(1)_标准C的I/O
1. 标准C的I/O和FILE结构体 1.1 标准C的I/O库函数 (1)char *fgets( char *string, int n, FILE *stream );//从流中获取字符串 (2) ...
- sqoop操作之ETL小案例
Extraction-Transformation-Loading的缩写,中文名称为数据提取.转换和加载.将数据从ORACLE中抽取数据,经过hive进行分析转换,最后存放到ORACLE中去. 本案例 ...
- 对象DIY
1.在java开发中,好代码都是组织的比较好,模拟现实很好,而不是步骤指令 2.对象组织+继承(归类
- smb.conf详解[未完]
看着玩意看的吐血!!!! baidu\google充斥着一堆错误的文章及翻译,samba.org上动辄就是this document is old and might be incurrent. 不过 ...