20190129-‘abcdefgh’里面挑出3个字母进行组合,一共有多少组合
一. 百度面试题‘abcdefgh’里面挑出3个字母进行组合,一共有多少组合,要求3个字母中不能有重复的组合,三个字母同时出现的次数只能出现一次,如出现了abc就不能出现cab,bca等
思路:
1. abcdefgh里面挑选3个字母进行组合,考虑使用3层for循环,然后使用if条件过滤不符合要求的组合
2. 3个字母中不能有重复的组合,考虑使用i!=j,i!=k,k!=i
3. 三个字母同时出现的次数只能出现一次,首先使用result来存储符合条件的组合,通过遍历result里面的item,使用条件if i in item and j in item and k in item,如果符合条件break,退出该层循环,如果遍历完result后都没有符合条件的,则表明符合组合要求,count+1,并将组合插入result中
e = 'abcdefghi'
for i in e:
#第一个字符
for j in e:
#第二个字符
for k in e:
#第三个字符
if i!=j and j!=k and k!=i:
for item in result:
if i in item and j in item and k in item:
break
else:
#与for item in result对应,当for主体中没有执行break语句的时候,else语句执行
item= i+j+k
result.append(item)
count+=1
print("共计%s个"%count)
print('分别为:',result)
三个字母同时出现的次数只能出现一次,可以考虑使用sort来实现,如sorted(item) not in list(map(lambda x:sorted(x),for x in result_two))来实现,具体写法如下:
e = 'abcdefghi'
#方法2:
#三个字母同时出现的次数只能出现一次,可以考虑使用sort来实现,如sorted(item) not in list(map(lambda x:sorted(x),for x in result_two))来实现,具体写法
count_two=0
result_two=[]
for i in e:
#第一个字符
for j in e:
#第二个字符
for k in e:
#第三个字符
item = i+j+k
if item.count(i)>1 or item.count(j)>1 or item.count(k)>1:
continue
if sorted(list(item)) not in list(map(lambda x:sorted(x),result_two)):
result_two.append(item)
count_two+=1
print("共计%s个"%count_two)
print('分别为:',result_two)
以上两种方法皆可实现题目的需求,核心考虑点为三个字母同时出现的次数只能出现一次,如出现了abc,就不能再出现cab,cba,bca等等
第三种方法,使用python内置函数itertools,写法如下:
import itertools
count_three= 0
result_three=[]
for i in itertools.combinations(e,3):
count_three+=1
result_three.append(''.join(i))
print("共计%s个"%count_three)
print('分别为:',result_three)
20190129-‘abcdefgh’里面挑出3个字母进行组合,一共有多少组合的更多相关文章
- 【Transact-SQL】找出不包含字母、不包含汉字的数据
原文:[Transact-SQL]找出不包含字母.不包含汉字的数据 测试的同事,让我帮忙写个sql语句,找出表中xx列不包含汉字的行. 下面的代码就能实现. IF EXISTS(SELECT * FR ...
- JS控制语句 编程练习 学生数据,分别是姓名、性别、年龄和年级,接下来呢,我们要利用JavaScript的知识挑出其中所有是大一的女生的的名字哦。
编程练习 在一个大学的编程选修课班里,我们得到了一组参加该班级的学生数据,分别是姓名.性别.年龄和年级,接下来呢,我们要利用JavaScript的知识挑出其中所有是大一的女生的的名字哦. 学生信息如下 ...
- sql 找出不包含字母、不包含汉字的数据
--1.不包含字母 SELECT * FROM t WHERE str NOT LIKE '%[a-zA-Z]%' SELECT * FROM t --2.不包含汉字 SELECT * FROM t ...
- python3----输出所有大小写字母及数字
1. 用一行输出所有大(小)写字母,以及数字 print([chr(i) for i in range(65, 91)]) # 所有大写字母 print([chr(i) for i in range( ...
- 645. Set Mismatch挑出不匹配的元素和应该真正存在的元素
[抄题]: he set S originally contains numbers from 1 to n. But unfortunately, due to the data error, on ...
- 随机产生字母a--z, A-Z 的任意组合
VERSION 1.0 引自: http://www.coderanch.com/t/134491/Security/generating-secure-tokens package demo; ...
- php 生成随机字符串,数字,大写字母,小写字母,特殊字符可以随意组合
* 生成随机字符串* @param int $length 要生成的随机字符串长度* @param string $type 随机码类型:0,数字+大小写字母:1,数字:2, ...
- 基于Visual C++2013拆解世界五百强面试题--题2-输出和为一个给定整数的所有组合
请用C语言实现 输出和为一个给定整数的所有组合 启动2012 /* 请用C语言实现 输出和为一个给定整数的所有组合 */ #include <stdio.h> //包含头文件stdio.h ...
- 找出k个数相加得n的所有组合
Find all possible combinations of k positive numbers that add up to a number n,each combination shou ...
随机推荐
- JDBC事务和数据库事务嵌套的讨论 .
首先必须执行con.setAutoCommit(false)方法,将JDBC事务设置为手动提交,否则手动提交con.commit()无效,手动回滚con.rollback()引发SQLExceptio ...
- MVC的验证(模型注解和非侵入式脚本的结合使用)
@HtmlHrlper方式创建的标签,会自动生成一些属性,其中一些属性就是关于验证 如图示例: 模型注解 通过模型注解后,MVC的验证,包括前台客户端,后台服务器的验证,MVC统统都做了包含,即使用户 ...
- 实验 MPLS LDP配置
实验 MPLS LDP配置 一.学习目的 掌握启用和关闭MPLS的方法 掌握启用和关闭MPLS LDP配置方法 掌握使用MPLS LDP配置LSP的方法 二.拓扑图 三.场景 你是公司的网管员,公司的 ...
- java native方法及JNI实例
前言 今天在读java.lang.Object 源码中时发现一个 一个hashCode方法: public native int hashCode() 原因Java很好,使用的人很多.应用极广,但是J ...
- DispatcherServlet类的分析
突然发现拿博客园来做笔记挺好的,不会弄丢.下面我把DispatcherServlet类的部分源代码复制到这里,然后阅读,把重要的地方翻译一下,该做笔记的地方做下笔记,蹩脚英语. =========== ...
- ThinkPHP3.2.3快速入门:基础篇
一.安装 thinkphp无需安装,只需将从官网上下载的压缩包解压后,把所有文件放到localhost根目录里就行了 二.压缩包中文件简述 :应用程序文件夹.自己所写的文件都放在这个文件夹里面 :公用 ...
- Myeclipse 自带Tomcat启动8080端口占用
在启动Myeclipse自带的Tomcat发现报错,显示8080端口被占用 第一步:window+r 组合键,调出命令窗口. 第二步:输出命令:netstat -ano|findstr 8080 ...
- centos 在安装YouCompleteMe时提示 Fatal : pyconfig.h No such file or directory
问题:centos 在安装YouCompleteMe时提示 Fatal : pyconfig.h No such file or directory 解决:安装python-devel yum ins ...
- 快速理解Event事件
浏览器事件是所有web程序的核心.javascript与HTML之间的交互是通过事件实现的.通过这些事件我们定义将要发生的行为.事件是一种异步编程的实现方式,本质上是程序各个组成部分之间的通信. 1. ...
- Flex控件之repeater和radioButton应用
代码:http://www.cnblogs.com/modou/articles/2108346.html <?xml version="1.0" encoding=&quo ...