2018腾讯内部转岗面试题2——打印A-Z 26个字母的所有子集
题目:
有一个集合由A-Z这26个字母组成,打印这个集合的所有子集,每个子集一行,使用C/C++实现,不要使用递归。
分析:
该题可参见著作《编程之法:面试和算法心得》。26个大写字母,乍一看真没啥思路,假设只有三个字母ABC,那么子集有:
{}
A
B
C
AB
AC
BC
ABC
把ABC看作三个比特位,分别为:
000
100
010
001
110
101
011
111
对上面的比特位表示的数值做个排序:
000
001
010
011
100
101
110
111
可以发现数值范围是0到23-1,数值中每一个比特位非零,表示该子集中包含对应位置的字母。同理,针对26个字母,我们只需要遍历0-226-1,检查每一个比特位是否为1,即可打印所有子集。
实现:
#include <iostream>
using namespace std;int main() {int dCapitalLetterNum=3;char caCapitalLetter[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";for(int i=1;i<1<<dCapitalLetterNum;++i){for(int j=0;j<dCapitalLetterNum;++j){if(i>>j&0x1)cout<<caCapitalLetter[j];}cout<<endl;}// 输出空集cout<<"空集"<<endl;
}
输出结果:
A
B
AB
C
AC
BC
ABC
空集
如果想打印 26 的大写字母的所有子集,只需要将 dCapitalLetterNum 改为 26 即可。
参考文献
[1] 编程之法:面试和算法心得
2018腾讯内部转岗面试题2——打印A-Z 26个字母的所有子集相关推荐
- 2018 腾讯内部转岗面试题 1 —— 不用 sizeof 判断操作系统是 32 还是 64 位
文章目录 前言 题目 解法一:最大值溢出 解法二:__WORDSIZE 解法三:指针变量位宽 参考文献 前言 2018 上半年折腾了一回,想换个后台开发岗尝试锻炼一下自己,面了三个部门,将有关有意思的 ...
- 2018腾讯内部转岗面试题3——找出数组中比左边大比右边的小的元素
题目: 以时间复杂度 O(n) 从长度为 n 的数组中找出同时满足下面两个条件的所有元素: (1)该元素比放在它前面的所有元素都大: (2)该元素比放在它后面的所有元素都小. 分析: 面试官给的上面冗 ...
- 腾讯内部转岗_死磕今日头条!马化腾又要放大招:腾讯被曝投资快手接近尾声...
腾讯的短视频野心并未消失. 日前,有消息称腾讯投资快手接近尾声,腾讯持股30%至40%,腾讯短视频业务或将由快手负责. 传腾讯投资谈判已近尾声 快手官方不予回应 8月2日消息, 在某社交平台上,有匿名 ...
- 腾讯内部转岗_即将退出历史舞台,腾讯微博将于9月28日停止服务和运营
一个时代过去了-- 文丨猎云网 ID:ilieyun 作者丨王非.王潇宵 腾讯微博在沉寂了多年之后,终于有了结局.近日,腾讯微博发布公告表示,由于业务调整,将于2020年9月28日晚23时59分停止服 ...
- 腾讯内部转岗_腾讯人才听得懂的12个“鹅语”
瑞雪与活水,一对姐妹花,演尽了H2O的美. 但你可能不知道,在"鹅言鹅语"里,许多话还有另一种美: 瑞雪 瑞雪兆的不止是丰年.在鹅厂,瑞雪代表一种精神. 小到电梯不逆行.班车不插队 ...
- 腾讯内部转岗_如何一句话证明你在腾讯工作过
一方水土养一方鹅.今天,我们来整理一下腾讯人最常说的口头禅,只要一听到他们说这些话,你就知道这是个不折不扣的鹅. 为了能让大家都能听懂这些鹅言鹅语,我会在每一句话的下方进行注解-- 01 同学,你的英 ...
- 腾讯内部转岗_别了,腾讯微博!
腾讯微博网站9月4日发布公告称,将于2020年9月28日23时59分停止服务和运营,届时将无法登陆.以下为公告全文: 亲爱的用户: 感谢您使用腾讯微博.由于业务调整,腾讯微博将于2020年9月28日晚 ...
- 腾讯内部转岗_再见,腾讯微博!
编辑 狂人 | 营销狂人(HLW3600) 这是继网易微博.搜狐微博相继调整后,被关闭的第三个微博平台.至此,微博领域只剩新浪微博. 腾讯微博9月5日发布官方公告称,由于业务调整,将于2020年9月 ...
- 腾讯内部转岗_5亿人 在用的腾讯APP,要凉了!!!
腾讯微博在沉寂了多年之后,终于有了结局.9月4日,腾讯微博发布公告表示,由于业务调整,将于2020年9目28日晚23时59分停止服务和运营,届时将无法登录.腾讯微博自诞生起就承担了阻击新浪微博对腾讯Q ...
最新文章
- push代码到github时,每次都要输入用户名和密码的问题
- jq ajax异步上传图片插件,jQuery异步上传文件插件ajaxFileUpload详细介绍
- 天翼云从业认证(2.2)云计算的模式、应用和行业生态
- 深度学习入门之PyTorch学习笔记:深度学习框架
- matlab V7.0 R14 安装教程
- 基于JAVA+SpringBoot+Mybatis+MYSQL的运动会管理系统
- Windows WMIC命令使用详解
- Emacs取消键值绑定
- php赛车,php调用接口及三分赛车平台搭建出租编写接口
- 面向对象编程(三)——程序执行过程中内存分析
- 关于SOA的应用研究思考
- 用单片机c51电子秤的c语言,原创基于51单片机的电子秤设计 带源代码,原理图毕业设计论文...
- 计算机添加usb网络打印机,方便实用!教您如何简单地将USB打印机更改为无线打印机!...
- 【活动报名】NEO 区块链公开课(1): NEO 区块链开发入门
- ESP8266安装安信可一体化开发环境
- 算法题 吹气球 javascript
- 用python画气球程序_动态编程气球最大得分(Python实现),规划,打,的,分数,python...
- uniapp上传图片至服务器,获得在线图片链接预览(实战)
- 安卓Android手机直播推送同步录像功能设计与实现源码
- 指定 Cesium 加载时的初始位置和视角