关键词:
题目描述
输入描述:
输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。
这个题思路不难,大致思路是
把第一个字母看做一部分,后面的所有字母看做一部分。用第一个字母和后面的所有字母依次交换,每交换一次把后一部分的字符串执行相应的操作。执行完之后,再把这一层刚刚换了的两个字母换回来,再用第一个和后面部分的下一个互换,反复执行
注意:可是这个有一个步骤是需要互换的,这个就很烦,最开始想到了用数组,后来感觉输出还要转成string存进ArrayList类型变量中,就放弃了。准备用Stringbuffer类的设置某一的索引位的字符,可是对java的类库不熟。。。本地测试成功了,可是在线oj一直不行。
于是看了大家的讨论,发现原来 new string(参数这里可以传入字符类型的数组),简直太方便了,以前还各种循环拼起来。 这样的话就用数组做,也不麻烦。
还需要注意一点就是万一原字符串是 aab类似的,这样包看会不会重复,可以用arraylist的contains的方法判断
代码参考来自 牛课网 老石基
import java.util.*; public class Solution { public ArrayList<String> Permutation(String str) { ArrayList<String> result = new ArrayList<String>(); if(str==null||str.length()==0) return result; char[] c = str.toCharArray(); Permutation(result, c, 0, c.length); Collections.sort(result); return result; } public void Permutation(ArrayList<String> list,char[] c, int star,int end){ if(star==end-1){ String result = new String(c); if(!list.contains(result)) list.add(result); return; } //交換 for(int i = star;i<end;i++){ char temp = c[star]; char temp2 = c[i]; c[star] = temp2; c[i] = temp; Permutation(list,c,star+1,end); c[star] = temp; c[i] = temp2; } } }
字符串的全排列
给定一个字符串,打印对应的全排列数组,比如abc,对应的全排列是:abc,acb,bac,bca,cba,cab。下面分析下思路是什么样的。基本的思路是这样的,首先固定一个字符,比如a,计算剩余字符的全排列,也就是bc的全排列,此时... 查看详情
字符串的排列
题目输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。(输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。)... 查看详情
1120.全排列(代码片段)
给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 我们假设对于小写字母有‘a‘<‘b‘<...<‘y‘<‘z‘,而且给定的字符串中的字母已经按照从小到大的顺序排列。输入:输入只有一行,是... 查看详情
回文排列和排列有啥区别? [关闭]
...1-1417:39:04【问题描述】:我见过一些编码问题来检查一个字符串是否是回文的排列,其他时候检查一个字符串是否是另一个字符串的排列。不确定我看到两者之间的区别。如果字符串是回文的排列,则 查看详情
003:全排列(代码片段)
描述给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。我们假设对于小写字母有‘a‘<‘b‘<...<‘y‘<‘z‘,而且给定的字符串中的字母已经按照从小到大的顺序排列。输入输入只有一行,是一... 查看详情
算法习题---字符串的全排序列(代码片段)
一:什么是全排列排列:从n个元素中任取m个元素,并按照一定的顺序进行排列,称为排列;全排列:当n==m时,称为全排列;比如:集合1,2,3的全排列为:123132213231321312我们可以将这个排列问题画成图形表示,即排列枚举树,比... 查看详情
字符串的排列组合问题(代码片段)
排列问题:我们求整个字符串的排列,可以看成两步,首先求可能出现在第一个位置上的字符,即把第一个字符和后面所有的字符交换。第二步固定一个字符,求后面所有字符的全排列。这是一个递归的思想。importjava.util.ArrayLis... 查看详情
字符串的排列
输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 思路:把一个字符串看成两部分组成:第一部分为第一个字符,第二部分为后面... 查看详情
字符串的排列
字符串的排列题目描述:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符... 查看详情
字符串数组全排列——逐个追加组合算法
...可以通过递归简单的实现,看下面两个例子:(1)关于字符串排列的问题输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。可... 查看详情
字符的排列
问题:输入一字符串(要求不存在重复字符),打印出该字符串中字符中字符的所有排列。思路:求所有可能出现在第一个位置的字符,把第一个字符和其后面的字符一一交换。固定第一个字符,求后面所有字符的排列。这个时候扔... 查看详情
生成给定字符串的所有排列
】生成给定字符串的所有排列【英文标题】:Generatingallpermutationsofagivenstring【发布时间】:2011-05-1312:13:36【问题描述】:找到字符串的所有排列的优雅方法是什么?例如。ba的排列将是ba和ab,但是像abcdefgh这样的更长的字符串呢... 查看详情
字符串的排列
题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括... 查看详情
面试题38.字符串的排列(全排列)(代码片段)
题目: 解答:1classSolution2public:3vector<string>permutation(stringstr)45vector<string>result;6if(str.empty())78returnresult;91011Permutation(str,result,0);1213//此时得到的result中排列并不 查看详情
字符串的排列
题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包... 查看详情
题目1120:全排列
...23解决:1409题目描述:给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。我们假设对于小写字母有‘a‘<‘b‘<...<‘y‘<‘z‘,而且给定的字符串中的字母已经按照从小到大的顺序排列。输入:... 查看详情
字符串去反复全排列算法(代码片段)
【题目描写叙述】输入一个字符串,打印出该字符串中字符的全部排列。比如输入字符串abc,则输出由字符a、b、c所能排列出来的全部字符串abc、acb、bac、bca、cab和cba。【分析】从集合中依次选出每个元素。作为排列... 查看详情
找到一些字符串的字典最小排列
】找到一些字符串的字典最小排列【英文标题】:FindingLexicographicallysmallestarrangementofsomestring【发布时间】:2016-09-2209:26:27【问题描述】:标题似乎是一个非常常见的问题,但请多多包涵。基本上让我们在字符串的每个索引处说... 查看详情