1、判断输入的数字是否是回文数:

学习内容:把数字转成字符串

1.

  1. def is_palindrome(n):
  2. n=str(n)
  3. m=n[::-1]
  4. return n==m

2.

  1. tmp_str = str(n)
  2. i = len(tmp_str) - 1
  3. j = 0
  4. while i > j :
  5. if tmp_str[i] == tmp_str[j] :
  6. i = i - 1
  7. j = j + 1
  8. pass
  9. else :
  10. return False
  11. return True

如果要直接接收键盘输入的话,可以直接用raw_input()即可,这样获得的就是字符串。

2.一行输出多个数字

学习内容:如何一行输出多个数字

1.

  1. s=[1,2,3,4,5,]
  2. s1='%d %d %d %d %d' %(s[0],s[1], s[2], s[3], s[4])
  3. print s1

2.转换成字符串输出:

  1. s=[1,2,3,4,5]
  2. s2='%s' %(' '.join(map(str,s)))
  3. print s2

3.统计列表中元素个数

1.利用列表的count函数

  1. mylist = [1,2,2,2,2,3,3,3,4,4,4,4]
  2. myset = set(mylist) #myset是另外一个列表,里面的内容是mylist里面的无重复项
  3. for item in myset:
  4. print("the %d has found %d" %(item,mylist.count(item)))

2.利用字典

  1. List=[1,2,2,2,2,3,3,3,4,4,4,4]
  2. a = {}
  3. for i in List:
  4. #i是元素,不是索引,所以a[i]表示key
  5. a[i] = List.count(i)
  6. print (a)

3.利用Counter类,Counter类的学习:http://www.cnblogs.com/shixisheng/p/7410505.html

  1. from collections import Counter
  2. Counter([1,2,2,2,2,3,3,3,4,4,4,4])
  3. #输出:Counter({1: 1, 2: 4, 3: 3, 4: 4})

4.把数组组成最小的数

题目描述

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
  1. # -*- coding:utf-8 -*-
  2. class Solution:
  3. def PrintMinNumber(self, numbers):
  4. # write code here
  5. num_str=map(str,numbers)
  6. if not num_str:
  7. return ''
  8. num_str.sort(lambda x,y:cmp(x+y,y+x))
  9. 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']

  1. # -*- coding:utf-8 -*-
  2.  
  3. def SWAP(i, j):
  4. temp = strAP[i]
  5. strAP[i] = strAP[j]
  6. strAP[j] = temp
  7.  
  8. strAP = ['A', 'B', 'C', 'D']
  9. result = []
  10. def CalAllP1(first, num):
  11. if first == num - 1: # 到达最后一个元素,则退出
  12. pass
  13. else:
  14. for i in range(first, num):
  15. if i != first: # 输出时去掉重复
  16. SWAP(i, first)
  17. temp = ''.join(strAP)
  18. result.append(temp)
  19. CalAllP1(first + 1, num) # 递归调用,全排列后面的元素
  20. SWAP(i, first)# 用来复位的(前边你交换了,这里再交换回来)。
  21.  
  22. temp = ''.join(strAP)
  23. result.append(temp)
  24. CalAllP1(0, len(strAP))
  25. print result

完整的代码:

  1. # -*- coding:utf-8 -*-
  2. class Solution:
  3. def __init__(self):
  4. self.strAP=[]
  5. self.result=[]
  6. def Permutation(self, ss):
  7. # write code here
  8. if not ss:
  9. return []
  10. self.strAP=list(ss)
  11. temp = ''.join(self.strAP)
  12. self.result.append(temp)
  13. self.CalAllP1(0, len(self.strAP))
  14. self.result=sorted(list(set(self.result)))#用set去除重复,然后再转化成list,然后再排序
  15. return self.result
  16.  
  17. def SWAP(self, i, j):
  18. temp = self.strAP[i]
  19. self.strAP[i] = self.strAP[j]
  20. self.strAP[j] = temp
  21.  
  22. def CalAllP1(self, first, num):
  23. if first == num - 1: # 到达最后一个元素,则退出
  24. pass
  25. else:
  26. for i in range(first, num):
  27. if i != first: # 输出时去掉重复
  28. self.SWAP(i, first)
  29. temp = ''.join(self.strAP)
  30. self.result.append(temp)
  31. self.CalAllP1(first + 1, num) # 递归调用,全排列后面的元素
  32. self.SWAP(i, first)#用来复位的

python 刷题必备的更多相关文章

  1. 再也不用c刷题了!!——c++刷题必备

    致读者: 博主是一名数据科学与大数据专业大二的学生,真正的一个互联网萌新,写博客一方面是为了记录自己的学习历程,一方面是希望能够帮助到很多和自己一样处于困惑的读者.由于水平有限,博客中难免会有一些错误 ...

  2. Python 刷题笔记

    Python 刷题笔记 本文记录了我在使用python刷题的时候遇到的知识点. 目录 Python 刷题笔记 选择.填空题 基本输入输出 sys.stdin 与input 运行脚本时传入参数 Pyth ...

  3. python刷题第二周

    1: 第3章-5 字符转换 (15 分) 本题要求提取一个字符串中的所有数字字符('0'--'9'),将其转换为一个整数输出. 输入格式: 输入在一行中给出一个不超过80个字符且以回车结束的字符串. ...

  4. python刷题第四周

    本周有所收获的题目: 第一题: 第4章-17 水仙花数(20 分) (20 分) 水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身. 例如:153=1×1×1+5×5×5 ...

  5. python刷题第三周

    以下是本周有所收获的题目 第一题: 第4章-4 验证"哥德巴赫猜想" (20 分) 数学领域著名的"哥德巴赫猜想"的大致意思是:任何一个大于2的偶数总能表示为两 ...

  6. python刷题专用函数。。

    无它,非bin()莫属. bin(x) Convert an integer number to a binary string. The result is a valid Python expre ...

  7. 【python刷题】LRU

    什么是LRU? LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰.该算法赋予每个页面一个访问字段,用来记录一个页面自上次 ...

  8. Python 刷题知识点

    if : elif : else : print('{0} \n{1} \n{2}' .format((a + b), (a - b), (a * b))) print(*[num**2 for nu ...

  9. 各种OJ网站,刷题必备

    各种OJ网站 落谷 vijos JoyOI CodeVS Comet OJ 北京大学 浙江大学 杭州电子科技大学 信息学奥赛一本通 以上就是本蒟蒻所知的OJ网站 收集和打字应该值一个赞吧

随机推荐

  1. RK3288 mipi屏调试流程

    CPU:RK3288 系统:Android 5.1 1.修改kernel/arch/arm/configs/rockchip_defconfig,打开mipi屏开关 # CONFIG_LCD_GENE ...

  2. php的zend引擎执行过程 一

    1. Zend引擎主要包含两个核心部分:编译.执行: 执行阶段主要用到的数据结构: opcode: php代码编译产生的zend虚拟机可识别的指令,php7有173个opcode,定义在 zend_v ...

  3. C++ 获取类成员函数地址方法 浅析

    C语言中可以用函数地址直接调用函数:   void print ()   {   printf ("function print");   }   typdef void (*fu ...

  4. Kubernetes集群安全配置案例

    Kubernetes 系统提供了三种认证方式:CA 认证.Token 认证 和 Base 认证.安全功能是一把双刃剑,它保护系统不被攻击,但是也带来额外的性能损耗.集群内的各组件访问 API Serv ...

  5. 学习笔记之Bitbucket

    Bitbucket | The Git solution for professional teams https://bitbucket.org/ Git Tutorials and Trainin ...

  6. (jsp/html)网页上嵌入播放器(常用播放器代码整理) http://www.jb51.net/article/37267.htm

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助   这个其实很简单,只要在HTML上添加以上代码就O ...

  7. idea如何禁用SVN

    打开Intellij的setting(ctrl+alt+s),选择plugins,在右边搜索框输入“SVN”,搜索.选择“SVN disconnect”,安装此插件.  插件使用 点击菜单栏中的VCS ...

  8. 补充 3:Golang 一些特性

    1 丰富的内置类型 2 函数多返回值 3 Go的错误处理 :   Go语言引入了3个关键字用于标准的错误处理流程,这3个关键字分别为defer. panic和 recover 4 在Go语言中,所有的 ...

  9. Bind2nd源码解析

    例:transform(coll1.begin(), coll1.end(), back_inserter(coll2), bind2nd(multiplies<int>(), 10)); ...

  10. 第14章 UDP编程(1)_UDP客户端服务器模型

    1. UDP编程模型 (1)UDP客户端服务器模型 ①客户端可以不调用bind()而直接与服务器通讯. ②UDP是无连接的,因此服务端不需要调用accept和listen,客户端也无需调用connec ...