面试题38:字符串的排列

题目:输入一个字符串,打印出该字符串中字符的所有排列。例如,输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca和cba。

# -*- coding:utf-8 -*-

class Solution:

def Permutation(self, ss):

# write code here

ss = list(ss)

result = []

if not ss:

return []

self.permutation(ss,0,result)

result = sorted(result)

return result

def permutation(self, ss, begin, result):

if begin == len(ss)-1:

result.append("".join(ss))

for i in range(begin, len(ss)):

if i!=begin and ss[i]==ss[begin]:

continue

ss[begin],ss[i] = ss[i], ss[begin]

self.permutation(ss,begin+1,result)

ss[begin],ss[i] = ss[i], ss[begin]

python剑指offer面试题_剑指Offer(Python语言)面试题38相关推荐

  1. c 复杂的前置后置面试题_你被哪些C语言面试题坑过?

    最近在<深入理解计算机系统>上看到一道题,分享一下: 假设我们在对有符号值使用补码运算的32位机器人运行代码.对于有符号值使用的是算术右移,而对于无符号值使用的是逻辑右移.变量的声明和初始 ...

  2. python爬网页数据用什么_初学者如何用“python爬虫”技术抓取网页数据?

    原标题:初学者如何用"python爬虫"技术抓取网页数据? 在当今社会,互联网上充斥着许多有用的数据.我们只需要耐心观察并添加一些技术手段即可获得大量有价值的数据.而这里的&quo ...

  3. python在建筑施工方面的应用_有哪些关于 Python 在建筑中的应用和教程?

    2018.02.09更新 (發現距離上一次更新馬上就要兩年了--) 嗯,兩年間發生了很多事.我也莫名其妙跑到ETH來了. 做起了Fab的優化,python已經完全不能滿足效率和複雜度的要求,走上了C+ ...

  4. python解决数学问题的实例_三十道python实战练习习题

    Python数学计算,编程练习题实例一: 简述:这里有四个数字,分别是:1.2.3.4 提问:能组成多少个互不相同且无重复数字的三位数?各是多少? Python解题思路分析:可填在百位.十位.个位的数 ...

  5. python 搜索引擎 实验楼的源码_【如何入门 Python 爬虫?】-看准网

    匿名用户 学会一门语言的捷径只有一个: Getting Started!¶ 起步阶段 任何一种编程语言都包含两个部分:硬知识和软知识,起步阶段的主要任务是掌握硬知识.°1 硬知识 "硬知识& ...

  6. 应届生offer长什么样_你的offer长什么样? 拿到offer就是被录取了吗?

    原标题:你的offer长什么样? 拿到offer就是被录取了吗? 我们普遍认为的是:只要大学发了录取offer ,那么就一定是能够入学的.然而,事情没有那么简单.通常情况下,offer是录取的意思,但 ...

  7. python能做出什么样的网站_我能用Python做什么?

    如果你想学Python,或者你刚开始学习Python,那么你可能会问:"我能用Python做什么?" 这个问题不好回答,因为Python有很多用途. 但是随着时间,我发现有Pyth ...

  8. python虚拟环境的安装和配置_基于virtualenv的Python虚拟环境的安装配置(Mac环境)...

    一.安装前提 明确自己的开发所需的python版本, Python 2.7.x 或者Python 3.6.x . 安装 Python 2.7.x 或Python 3.6.x 版的virtualenv. ...

  9. 编写python程序一年365天_编写第一个Python程序

    无论读者使用的是哪种操作系统,相信都已经安装好了 Python 环境,可以通过命令行窗口或者 Python 自带的 IDLE 成功启动交互式解释器(如图所示). 本节将带领读者正式编写第一个 Pyth ...

  10. python以运行效率高著称吗_几个提升Python运行效率的方法之间的对比

    在我看来,python社区分为了三个流派,分别是python 2.x组织,3.x组织和PyPy组织.这个分类基本上可以归根于类库的兼容性和速度.这篇文章将聚焦于一些通用代码的优化技巧以及编译成C后性能 ...

最新文章

  1. Java测试List<Object>根据其某个属性去重俩种方法效率
  2. 函数式编程语言python-函数式编程初探
  3. 【每周NLP论文推荐】 掌握实体关系抽取必读的文章
  4. 抢攻5G网络功能虚拟化,英特尔推专用FPGA加速卡
  5. IBASE object component的where use list
  6. C语言的数据类型→浮点型数据
  7. linux连接u盘是提示usb驱动错误,U盘提示无法访问,由于I/O设备错误,无法运行此项请求3种完美解决办法...
  8. 计算机round是什么函数,round函数
  9. CentOS 6.3_Nagios安装笔记
  10. 后台管理系统下载excel文件
  11. Linux系列教程——Linux文件编辑、Linux用户管理
  12. 2017高教杯数学建模B 题分析
  13. 清理服务器系统日志,win2008服务器清理系统日志
  14. TD元素的nowrap属性
  15. mybatis-plus 属性为空时判断问题
  16. androidspring!Android开发究竟该如何学习,薪资翻倍
  17. 测试人员想做游戏测试,你一定要知道这几点!
  18. 电脑公司 GHOST WIN10 X64 装机专业版 V2018.04(64位)
  19. 新化学物质持久性、生物累积性和毒性的判定及登记要求..
  20. 推荐一个演讲网站:TED

热门文章

  1. midlet_如何在J2ME中创建MIDlet
  2. 识别Java中的代码气味
  3. lucene 搜索_使用Lucene的搜索服务器搜索Jira问题
  4. 使用JUnit5对DynamoDB应用程序进行单元测试
  5. Java开发人员应该知道的5大Spring Boot功能
  6. java 构建者模式_Java方法中的参数太多,第3部分:构建器模式
  7. primefaces_轻量级Web应用程序:PrimeFaces(JSF)+ Guice + MyBatis(第1部分)
  8. 在javafx中界面主题_最小的JavaFX演示文稿(在JavaFX中)
  9. 琥珀项目:Java的未来揭晓
  10. 使用API​​密钥(aka身份验证令牌)部署到Maven Central