有一道面试题: 一个字符串"Yes", 用代码实现,输出其全部大小写组合,

比如说字符串"no"则输出['no', 'No', 'nO', 'NO']

想到了如下的几种解法:

方法一:借助于itertools.combinations

# coding = utf -8def handle_string(src=""):from itertools import combinationsres = ""for char in src:res += char.upper() + char.lower()words = list(combinations(list(res), 3))for i in range(len(src)):words = ["".join(item) for item in filter(lambda x:x[i].lower() == src[i].lower(), words)]return wordsif __name__ == "__main__":print(handle_string("Yes"))

方法二:借助于random模块

# coding = utf -8def handle_string(src=""):import randomsl = src.lower()su = src.upper()sa = ["".join(list(x+y)) for (i, x) in enumerate(sl) for (j, y) in enumerate(su) if i == j]temp = []lens = 2 ** len(src)while True:item = "".join(random.choice(i) for i in sa)if item not in temp:temp.append(item)if len(temp) == lens:breakreturn tempif __name__ == "__main__":print(handle_string("Yes"))

一道按顺序排列组合题的几种解法相关推荐

  1. opengl正方形绕点旋转_一题十五种解法够不够? 旋转,构造,四点共圆乐不停...

    平移,旋转,轴对称是我们初中学习的"几何三大变换".在我们初中阶段学习的几何知识中占据着核心的地位,特别是旋转,那更是核心中的核心(河南中考22题年年考). 如何更好的理解旋转,如 ...

  2. 一道大厂Python面试题,4种解法,从青铜到王者引发的“思考”!

    "菜鸟学Python",第"518"篇原创 金九银十应该是校招的黄金时间,大家都知道去大厂面试,算法是一个必须要过的关,无论是笔试还是面试的环节都需要.而算法这 ...

  3. 腾讯校园招聘笔试 2019-8-17 第四题 另一种解法

    之前在博客https://blog.csdn.net/hanzhen7541/article/details/99710954中我们讨论了一种单调栈的解法,复杂度是O(nlogn).那么实际上还有一种 ...

  4. 一道二阶常系数非齐次微分方程的八种解法

    二阶常系数非齐次微分方程的八种解法 前言 法一:待定系数法 法二:常识变易法 法三:算子法 法四:降阶法 法五:积分因子法 法六:积分因子法 法七:拉普拉斯变换法 法八:MATLAB法 针对学习过程中 ...

  5. java并发编程--一道经典多线程题的2种解法

    问题的描述 启动3个线程打印递增的数字, 线程1先打印1,2,3,4,5, 然后是线程2打印6,7,8,9,10, 然后是线程3打印11,12,13,14,15. 接着再由线程1打印16,17,18, ...

  6. 【考研·数据结构】408真题 (2013年42题) 的两种解法】

    2013 寻找主元素 暴力解法: 记录数组 用一个记录数组记录每个元素出现的次数,然后找出其中最多的次数与n/2作比较 枚举 用一个双重for循环去遍历比较 代码实现: //记录数组 #include ...

  7. 北林oj-算法设计与分析-Line up in the canteen(两种解法,附思路)

    描述 One day, there is a kind of new delicious food from one of the windows in the canteen. All studen ...

  8. ## 【第8题】这是一道排列组合题

    题目:ABC159 - D - Banned K 题目原文请移步下面的链接 https://www.luogu.com.cn/problem/AT_abc159_d 参考题解:https://www. ...

  9. 一道头条算法题,一种不为人知的解法!

    作者 | 小夕       责编 | 欧阳姝黎 题目 输入整数数组 arr ,找出其中最小的 k 个数.例如,输入4.5.1.6.2.7.3.8这8个数字,则最小的4个数字是1.2.3.4. 示例 1 ...

最新文章

  1. client中周期性边界_HFSS中周期性边界条件的设置
  2. [kuangbin带你飞]专题四 最短路练习 B( POJ 2253) Frogger(spfa)
  3. 关于博客园,编辑文章的小意见
  4. windows wim
  5. AliExpress智能营销引擎大揭秘-AnalyticDB如何做到快准狠省
  6. 为什么已有Elasticsearch,我们还要重造实时分析引擎AresDB?
  7. 你在为疯狂圣诞节海报做准备了么?
  8. 用java绘制一个光照球体_HTML5 Canvas一个基本光线行进的球体光照效果
  9. VIP客户服务系统设计(四)——按用户角色构思系统功能(上)
  10. python手写识别系统gui_求大神帮助,怎么用wxpython编写一个数字手写体识别系统!...
  11. Sorting a Three-Valued Sequence
  12. shell自动部署k8s集群:新增加的work node节点加入k8s集群
  13. Basic Sensor Calibration (1) -- 加速计传感器校准
  14. 玩真的了!深度解读拒不履行信息网络安全管理义务将入罪
  15. Linux基础入门到精通之虚拟机中安装Linux系统(二)
  16. [编程范式]以炒菜为例,讲解各种编程范式
  17. adb 卸载android系统程序
  18. 计算机应用技术计算问题,汉语组块计算的若干分析-计算机应用技术专业论文.docx...
  19. 微信小程序的登录过程简介
  20. 网吧游戏下载期,内置超10000G游戏!

热门文章

  1. linux的dep文件是什么意思,DEP 文件扩展名: 它是什么以及如何打开它?
  2. YXC | 蓝牙耳机晶振怎么选?
  3. 视频会议十大开源项目
  4. css悬停动画,CSS卡片悬停动画效果实现
  5. 赚钱套路分享:降维打击,报团取暖的玩法
  6. 计算机rom和硬盘,都是存储器,但RAM、ROM、闪存、硬盘怎么分?
  7. 35岁的程序员:第24章,兼职项目
  8. win 10 安装robomongo(studio 3T)
  9. java 经纬度 地图_百度地图地址经纬度互转,java代码(v2版本)
  10. Linux中wget、yum与apt-get用法及区别