名气笔试:楚楚街2016招聘笔试(解密)

题目描述

亮亮深吸一口气,小心地将盒子打开,里面是一张地图,地图上除了一些奇怪的字母以外没有任何路线信息,这可让亮亮犯了愁,这些字母代表了什么意思呢? 亮亮绞尽脑汁也想不出什么思路,突然,亮亮眼前一亮,“我可以把这些字母所有的排列方式全部写出来,一定可以找到答案!”于是,亮亮兴奋的开始寻找字母里的秘密。

输入描述:

每组数据输入只有一行,是一个由不同的大写字母组成的字符串,已知字符串的长度在1到9之间,我们假设对于大写字母有’A’ < ‘B’ < … < ‘Y’ < ‘Z’。

输出描述:

输出这个字符串的所有排列方式,每行一个排列,要求字母序比较小的排列在前面。

输入例子:

WHL

输出例子:

HLW
HWL
LHW
LWH
WHL

WLH

java版本的代码实现:

package cn.cat.algorithm;import java.util.TreeSet;public class Decode {/*** 分析:此题需要借助递归的方式最简便,需要注意全排序时,字母顺序更改后,需要还原字母顺序,以便于下一轮的排序使用。*      题目还要求使用按字母序输出,故需要将全排序结果全部存放到集合中,然后再统一排序输出,此处可以直接借助JDK的TreeSet来快速实现。* * @Description: * @author gwj* @Created 2018年4月18日 下午4:42:04 * @param args*/public static void main(String[] args) {String str = "WHL";char[] charArr = str.toCharArray();//因为需要按字母序输出,故先将结果存储到集合中。TreeSet<String> treeSet = new TreeSet<String>();//全排序permutation(charArr, 0, treeSet);//ThreeSet本身就是按字典顺序排序的,直接输出即可。for (String s : treeSet) {System.out.println(s);}}/** 排列字符* @Description: * @author gwj* @Created 2018年4月19日 上午9:53:08 * @param cs 字符数组* @param index 排序的起始索引* @param set 存放排序结果的集合*/static void permutation(char[] cs, int index, TreeSet<String> set) {if (index >= cs.length) {set.add(new String(cs));return;}for (int i = index; i < cs.length; i++) {swap(cs, index, i);//递归调用permutation(cs, index + 1, set);//恢复交换的字母swap(cs, index, i); }}/** 交换数组元素位置* @Description: * @author gwj* @Created 2018年4月18日 下午5:25:31 * @param charArr* @param x* @param y*/static void swap(char[] charArr, int x, int y) {char temp = charArr[x];charArr[x] =  charArr[y];charArr[y] = temp;}}

算法题:解密(楚楚街2016招聘笔试)相关推荐

  1. 算法题:旅途(楚楚街2016招聘笔试)

    名企笔试:楚楚街2016招聘笔试(旅途) 题目描述 原来是要到醋溜站台乘坐醋溜快车到醋溜港",亮亮解出了地图隐藏的秘密,赶紧奔向醋溜站台,但到了之后,亮亮忧桑地发现,从醋溜站台到醋溜港沿途的 ...

  2. 楚楚街2016招聘笔试(航线)

    楚楚街2016招聘笔试(航线) 题目描述 "呼!!终于到了,可是接下来要怎么走才能到达楚楚街港港呢?"亮亮在醋溜港直发愁. 突然"啾"的一下,一只银色小船出现在 ...

  3. 楚楚街2016招聘笔试(旅途)(未完待续)

    题目描述 原来是要到醋溜站台乘坐醋溜快车到"醋溜港",亮亮解出了地图隐藏的秘密,赶紧奔向醋溜站台 但到了之后,亮亮忧桑地发现,从醋溜站台到醋溜港沿途的每个车站都有很多美女被他飒爽的 ...

  4. 名企笔试:腾讯2016招聘笔试(微信红包)

    名企笔试:腾讯2016招聘笔试(微信红包) 题目描述 春节期间小明使用微信收到很多个红包,非常开心.在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半.请帮小明找到该红包金额.写出具 ...

  5. 名企笔试:美团2016招聘笔试(股票交易日)

    美团2016招聘笔试(股票交易日) 题目描述 在股市的交易日中,假设最多可进行两次买卖(即买和卖的次数均小于等于2),规则是必须一笔成交后进行另一笔(即买-卖-买-卖的顺序进行).给出一天中的股票变化 ...

  6. 蘑菇街2016招聘笔试

    题目描述 给定一个字符串,问是否能通过添加一个字母将其变为回文串. 输入描述: 一行一个由小写字母构成的字符串,字符串长度小于等于10. 输出描述: 输出答案(YES\NO). 输入例子: coco ...

  7. 网易2016招聘笔试升级之路Java代码

    本文地址:http://blog.csdn.net/shanglianlm/article/details/72968583 小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能 ...

  8. 美团2016招聘笔试:奇数位丢弃

    对于一个由0-n的所有数按升序组成的序列,我们要进行一些筛选,每次我们取当前所有数字中从小到大的第奇数位个的数,并将其丢弃.重复这一过程直到最后剩下一个数.请求出最后剩下的数字. 输入描述: 每组数据 ...

  9. 楚楚街2016校招 ——礼物(动态规划)

    题目描述 "呼!!佳慧,我拿到面试直通卡了!""吓死宝宝了!哦,你拿到直通卡了啊,好哒,进去吧,你可以直接接受老大的面试了". 亮亮来到老大的办公室," ...

最新文章

  1. 业界对生成图片缩略图的做法归纳
  2. JUC多线程:阻塞队列ArrayBlockingQueue与LinkedBlockingQueue
  3. 不显示坐标刻度_如何使用坐标交叉位置来改变Excel图表的展现形态
  4. [emacs] python代码折叠
  5. SAP UI5应用里的页面路由处理
  6. 基于ISM的大数据在建筑领域中的应用障碍分析
  7. CVPR 2019 爆款论文作者现场解读:视觉语言导航、运动视频深度预测、6D姿态估计...
  8. 【MySQL】ERROR 1055 (42000) ROUP BY clause this is incompatible with sql_mode=only_full_group_by
  9. 201612-2工资计算
  10. 创金合信基金公司:专户模式案例
  11. 电工学的MATLAB实践,基于Matlab/Simulink的电工学电路仿真
  12. java最长公共子串_查找字符串最长公共子串
  13. JDK1.8和JRE文件结构
  14. 贯头山酒——中华酒文化的源头之一
  15. 我不恨你,我只恨我们有缘无分
  16. 调用Runtime.getRuntime().exec()执行Linux脚本导致程序挂住的问题分析
  17. Elasticsearch如何提升查询效率
  18. 1. verilog 基础语法
  19. msp430发送pwm信号_使用MSP430G2单片机的PWM模块控制LED指示灯的亮度
  20. 梳理|对话系统中的DST

热门文章

  1. 【天光学术】研究生论文写作中最容易出现的11类问题,你知道吗?
  2. GARP和GVRP协议基础
  3. js数组删除只删除一半
  4. 适合宏基因组的可移动元件数据库mobileOG的使用
  5. 出海困局 | 国内增长出现瓶颈,大厂的出海“野心”也藏不住了!
  6. python中map函数的作用是_python中map()函数
  7. 女生应该选JAVA还是前端?
  8. 包装类详解(装箱,拆箱)
  9. raspberryPi摄像头命令行软件raspistill帮助文档
  10. 计算机学院校运会入场词,大学运动会入场解说词大全