打印出给定字符串中字符的所有不重复排列
来源:互联网 发布:网红张大奕的淘宝店 编辑:程序博客网 时间:2024/05/17 00:03
<big>今天真是有点小郁闷,笔试居然没通过,题目就是上面这个,看着并不太难,但是可能是有点紧张吧,想了至少三四十分钟居然还没理清思路。笔试结束之后特意跑到星巴克静下心来思考了一下,结果用了二十分钟左右就写出来了(咳咳,大神请绕道)。
再复述一遍题目吧:
给定一个字符串,打印出该字符串所有字符的不重复排列。
例如:字符串abc的排列包括abc,bac,cab等
乍一看真是不难,也不知道当时怎么脑子就宕机了,完全理不清头绪。
下面给出C#解法。
public static void PrintPermutation (string str) { char[] charArr = str.ToCharArray (); List<char> chars = new List<char> (charArr); chars.Sort (); //这是不重复的关键,用来判断相邻字符是否相同 List<char> toPrintCharList = new List<char> (); PrintPermutationRecursive (chars, toPrintCharList); } private static void PrintPermutationRecursive (List<char> chars, List<char> toPrintCharList) { for (int i = 0; i < chars.Count; i++) { // 与前一字符相同则跳过本层 if (i > 0 && chars [i] == chars [i - 1]) continue; char toPrintChar = chars [i]; chars.RemoveAt (i); toPrintCharList.Add(toPrintChar); PrintPermutationRecursive (chars, toPrintCharList); // 所有字符都已经加入到toPrintCharList时就打印出来 if (chars.Count == 0) { for (int j = 0; j < toPrintCharList.Count; j++) { Console.Write (toPrintCharList [j] + " "); } Console.WriteLine (); } chars.Insert (i, toPrintChar); toPrintCharList.RemoveAt (toPrintCharList.Count - 1); } }
平时感觉自己还挺能保持冷静的,也不知道怎么一到关键时刻就冷静不下来呢,简直气死了。
其实这一道算法题完全撑不住一篇博客,但写在这里当做对自己的鞭策吧。
阅读全文
0 0
- 打印出给定字符串中字符的所有不重复排列
- 打印出字符串中字符的所有排列
- 打印字符串中所有字符的排列
- 输入一个字符串,打印出该字符串中字符的所有排列
- 输入一个字符串,打印出该字符串中字符的所有排列
- 输入一个字符串,打印出该字符串中字符的所有排列。
- 输入一个字符串,打印出该字符串中字符的所有排列
- 输入一个字符串,打印出该字符串中字符的所有排列。
- 输入一个字符串,打印出该字符串中字符的所有排列。
- 输入一个字符串,打印出该字符串中字符的所有排列
- 输入一个字符串,打印出该字符串中字符的所有排列
- java 输入一个字符串,打印出该字符串中字符的所有排列
- 输入一个字符串,按字典序打印出该字符串中字符的所有排列。
- 输入字符串,要求打印出所有字符排列的可能性
- 《剑指Offer》面试题:按字典序打印出该字符串中字符的所有排列
- 给定字符串,打印出组成字符串的字符的全排列
- 字符串的排列。输入一字符串,打印出该字符串中字符的所有排列。例如输入abc,则排列为abc,acb,bac,bca,cab,cba
- 写正确函数需要注意的地方:输入一个字符串,打印出该字符串中字符的所有排列
- Android XRecyclerView最简单的item点击事件处理
- [git]Git的使用流程(四)
- java面向对象—类的有参函数—升序
- 模板设置(java代码)
- Freeline框架解析
- 打印出给定字符串中字符的所有不重复排列
- HDU1215七夕节
- 刷题报告003 洛谷P1011 车站
- 【HDU】6047
- 大话设计模式-Study-Tips-第一章-简单工厂模式
- 设计思维分享
- 【深度学习】图像标注评价标准
- ++ map、multimap 的使用方法
- redhat 7安装CentOS 7 yum源