题目:
有一个集合由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个字母的所有子集相关推荐

  1. 2018 腾讯内部转岗面试题 1 —— 不用 sizeof 判断操作系统是 32 还是 64 位

    文章目录 前言 题目 解法一:最大值溢出 解法二:__WORDSIZE 解法三:指针变量位宽 参考文献 前言 2018 上半年折腾了一回,想换个后台开发岗尝试锻炼一下自己,面了三个部门,将有关有意思的 ...

  2. 2018腾讯内部转岗面试题3——找出数组中比左边大比右边的小的元素

    题目: 以时间复杂度 O(n) 从长度为 n 的数组中找出同时满足下面两个条件的所有元素: (1)该元素比放在它前面的所有元素都大: (2)该元素比放在它后面的所有元素都小. 分析: 面试官给的上面冗 ...

  3. 腾讯内部转岗_死磕今日头条!马化腾又要放大招:腾讯被曝投资快手接近尾声...

    腾讯的短视频野心并未消失. 日前,有消息称腾讯投资快手接近尾声,腾讯持股30%至40%,腾讯短视频业务或将由快手负责. 传腾讯投资谈判已近尾声 快手官方不予回应 8月2日消息, 在某社交平台上,有匿名 ...

  4. 腾讯内部转岗_即将退出历史舞台,腾讯微博将于9月28日停止服务和运营

    一个时代过去了-- 文丨猎云网 ID:ilieyun 作者丨王非.王潇宵 腾讯微博在沉寂了多年之后,终于有了结局.近日,腾讯微博发布公告表示,由于业务调整,将于2020年9月28日晚23时59分停止服 ...

  5. 腾讯内部转岗_腾讯人才听得懂的12个“鹅语”

    瑞雪与活水,一对姐妹花,演尽了H2O的美. 但你可能不知道,在"鹅言鹅语"里,许多话还有另一种美: 瑞雪 瑞雪兆的不止是丰年.在鹅厂,瑞雪代表一种精神. 小到电梯不逆行.班车不插队 ...

  6. 腾讯内部转岗_如何一句话证明你在腾讯工作过

    一方水土养一方鹅.今天,我们来整理一下腾讯人最常说的口头禅,只要一听到他们说这些话,你就知道这是个不折不扣的鹅. 为了能让大家都能听懂这些鹅言鹅语,我会在每一句话的下方进行注解-- 01 同学,你的英 ...

  7. 腾讯内部转岗_别了,腾讯微博!

    腾讯微博网站9月4日发布公告称,将于2020年9月28日23时59分停止服务和运营,届时将无法登陆.以下为公告全文: 亲爱的用户: 感谢您使用腾讯微博.由于业务调整,腾讯微博将于2020年9月28日晚 ...

  8. 腾讯内部转岗_再见,腾讯微博!

    编辑  狂人 | 营销狂人(HLW3600) 这是继网易微博.搜狐微博相继调整后,被关闭的第三个微博平台.至此,微博领域只剩新浪微博. 腾讯微博9月5日发布官方公告称,由于业务调整,将于2020年9月 ...

  9. 腾讯内部转岗_5亿人 在用的腾讯APP,要凉了!!!

    腾讯微博在沉寂了多年之后,终于有了结局.9月4日,腾讯微博发布公告表示,由于业务调整,将于2020年9目28日晚23时59分停止服务和运营,届时将无法登录.腾讯微博自诞生起就承担了阻击新浪微博对腾讯Q ...

最新文章

  1. push代码到github时,每次都要输入用户名和密码的问题
  2. jq ajax异步上传图片插件,jQuery异步上传文件插件ajaxFileUpload详细介绍
  3. 天翼云从业认证(2.2)云计算的模式、应用和行业生态
  4. 深度学习入门之PyTorch学习笔记:深度学习框架
  5. matlab V7.0 R14 安装教程
  6. 基于JAVA+SpringBoot+Mybatis+MYSQL的运动会管理系统
  7. Windows WMIC命令使用详解
  8. Emacs取消键值绑定
  9. php赛车,php调用接口及三分赛车平台搭建出租编写接口
  10. 面向对象编程(三)——程序执行过程中内存分析
  11. 关于SOA的应用研究思考
  12. 用单片机c51电子秤的c语言,原创基于51单片机的电子秤设计 带源代码,原理图毕业设计论文...
  13. 计算机添加usb网络打印机,方便实用!教您如何简单地将USB打印机更改为无线打印机!...
  14. 【活动报名】NEO 区块链公开课(1): NEO 区块链开发入门
  15. ESP8266安装安信可一体化开发环境
  16. 算法题 吹气球 javascript
  17. 用python画气球程序_动态编程气球最大得分(Python实现),规划,打,的,分数,python...
  18. uniapp上传图片至服务器,获得在线图片链接预览(实战)
  19. 安卓Android手机直播推送同步录像功能设计与实现源码
  20. 指定 Cesium 加载时的初始位置和视角

热门文章

  1. PHP 绕过禁用函数漏洞的原理与利用分析
  2. 微软拒绝修复滥用 MSTSC 的安全绕过缺陷
  3. BZOJ3233:[AHOI2013]找硬币(DP)
  4. hdu 2896 AC自动机
  5. Xilinx产品与及开发工具2017
  6. 排序算法系列之归并排序
  7. Matlab中bsxfun和unique函数解析
  8. [Java] 蓝桥杯ALGO-27 算法训练 FBI树
  9. 【C++ 与 STL】栈:stack
  10. 蓝桥杯 ADV-202算法提高 最长公共子序列(动态规划)