求助~关于子集合的问题 有一个字符串“集合a”列出它所有的不颠倒顺序的子集合它的子集合有:集合a集合集a和a集合a求助大家帮忙列下思路~若有代码或伪代码就谢谢了,最好是通用的方法谢谢各位 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ………………这么简单,两个for循环嵌套应该就够了懒得写,坐等答案 如果字符集合不长的话,根据“选和不选”的01效果。考虑下这个思路得行不?比如5个字符的"abcde":设定二进制11111为整体的abcde所有顺序集合就是00001---e00010---d00011---de00100---c00101---ce.....也就是说从00001开始到11111的二进制你都走一遍,无重复,不漏元素。 public class TestSort { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String a="集合a"; char[] b=a.toCharArray(); sort(b); } private static void sort(char[] b) { // TODO Auto-generated method stub int m=b.length-2; long n=(2<<m); String str=""; for(int i=0;i<b.length;i++){ str+="1"; } long l=Integer.parseInt(str, 2); char[] buff; for(;l>0;l--){ long x=n; buff=new char[b.length]; int w=0,v=0; while(x>=1){ if((l&x)==x){ buff[v]=b[w]; v++; } x=x>>1; w++; } printBuffer(buff); }按5楼的思路稍微实现了一下,不算好,期待更好的方法 public class TestSort { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String a="集合a"; char[] b=a.toCharArray(); sort(b); } private static void sort(char[] b) { // TODO Auto-generated method stub int m=b.length-2; long n=(2<<m); String str=""; for(int i=0;i<b.length;i++){ str+="1"; } long l=Integer.parseInt(str, 2); char[] buff; for(;l>0;l--){ long x=n; buff=new char[b.length]; int w=0,v=0; while(x>=1){ if((l&x)==x){ buff[v]=b[w]; v++; } x=x>>1; w++; } printBuffer(buff); } } private static void printBuffer(char[] buff) { // TODO Auto-generated method stub String str=""; for(int i=0;i<buff.length;i++){ str+=""+buff[i]+""; } System.out.println(str); }刚代码没发全 java问题,求大牛们解答 java 问题 再问继承的函数调用问题 新手提问,如何返回list指定位置数据.不清楚list中的字段名称,只知道几行几列. 一个画图程序,帮忙看看 这是怎么回事呢........ 如何最有效的请教掉List中的所有“null”的对象 小弟想用java实现像c++中的缺省值的功能,不知如何实现。希望那位大虾指点一二。多谢,一定给分! 谁知道用SOCKET在几台机器之间互传文件的程序框架? 希望简单的问题有人帮我解决!!!谢谢 新手小程序求解错误 一个JAVA问题。
懒得写,坐等答案
比如5个字符的"abcde":
设定二进制11111为整体的abcde
所有顺序集合就是
00001---e
00010---d
00011---de
00100---c
00101---ce
.....
也就是说从00001开始到11111的二进制你都走一遍,无重复,不漏元素。
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub String a="集合a";
char[] b=a.toCharArray();
sort(b);
} private static void sort(char[] b) {
// TODO Auto-generated method stub
int m=b.length-2;
long n=(2<<m);
String str="";
for(int i=0;i<b.length;i++){
str+="1";
}
long l=Integer.parseInt(str, 2);
char[] buff;
for(;l>0;l--){
long x=n;
buff=new char[b.length];
int w=0,v=0;
while(x>=1){
if((l&x)==x){
buff[v]=b[w];
v++;
}
x=x>>1; w++;
}
printBuffer(buff);
}
按5楼的思路稍微实现了一下,不算好,期待更好的方法
public class TestSort { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub String a="集合a";
char[] b=a.toCharArray();
sort(b);
} private static void sort(char[] b) {
// TODO Auto-generated method stub
int m=b.length-2;
long n=(2<<m);
String str="";
for(int i=0;i<b.length;i++){
str+="1";
}
long l=Integer.parseInt(str, 2);
char[] buff;
for(;l>0;l--){
long x=n;
buff=new char[b.length];
int w=0,v=0;
while(x>=1){
if((l&x)==x){
buff[v]=b[w];
v++;
}
x=x>>1; w++;
}
printBuffer(buff);
}
} private static void printBuffer(char[] buff) {
// TODO Auto-generated method stub
String str="";
for(int i=0;i<buff.length;i++){
str+=""+buff[i]+"";
} System.out.println(str);
}刚代码没发全