`

集合a----列出它所有的不颠倒顺序的子集合

阅读更多
因为要顺序不乱----换一种思路就是这些字符总是在原来的位置,位置不换,但是是显示和不显示

如果字符集合不长的话,根据“选和不选”的01效果。考虑下这个思路得行不?
比如5个字符的"abcde":
设定二进制11111为整体的abcde
所有顺序集合就是
00001---e
00010---d
00011---de
00100---c
00101---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);
        }
       
       
       
       
    }

    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);
    }

分享到:
评论

相关推荐

    2021-2022计算机二级等级考试试题及答案No.10813.docx

    - “文件”菜单下方通常列出的是最近打开过的文件。 - **结论**: 正确答案为**B**。 #### 11. 删除Word页码 - **题目**: 在Word中,删除某页的页码是否会自动删除整篇文档的页码? - **解析**: - 删除某页的页码...

    2021-2022计算机二级等级考试试题及答案No.12645.docx

    - **知识点:** 关系数据库文件中的记录顺序可以任意颠倒,不影响数据关系。 - **详细解释:** 在关系数据库中,记录的顺序对于数据的关联关系没有影响。这意味着记录的先后顺序可以改变,只要保持其内部关系不变即可...

    XXXX年西安电子科技大学考研复试_数据库.doc

    - **记录顺序**:关系数据库文件中的记录顺序可以任意颠倒,不会影响到数据库中的数据关系。这是因为关系模型是基于集合的,集合中的元素是没有顺序的。 ### 17. 自然连接的前提 - **共有属性**:自然连接要求两个...

    13-15真题答案(部分)1

    4. **二叉树**:二叉树每个节点最多有两个子节点,分为左子节点和右子节点,且次序不可颠倒。 5. **串**:串是由零个或多个字符组成的有限序列,可以为空。 6. **栈**:栈是一种只能在一端进行插入(入栈)或删除...

    传智javaweb基础英语单词

    - **Reverse**:[rɪ'vɝs] 颠倒、倒转,反转数组元素的顺序。 - **Popup**:['pɑp,ʌp] 弹出、发射,创建一个弹出窗口。 - **Push**:[pʊʃ] 推进、增加,向数组末尾添加新元素。 - **DOM (Document Object Model...

    30个常用python实现.pdf

    5. 列出当前目录下的所有文件和目录名:使用Python中的os模块可以实现对文件系统进行操作,列出当前目录下的文件和目录名。 6. 把一个list中所有的字符串变成小写:通过遍历list并对每个元素使用str.lower()方法来...

    Java面试宝典-经典

    11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-&gt;(一千零一拾一元整)输出。 81 三. html&JavaScript&ajax部分 82 1. 判断第二个日期比第一...

    剑指offer(牛客网)

    标题《剑指offer(牛客网)》指的是一系列面向编程和算法问题的解决方案集合,这些解决方案往往出自牛客网上的讨论和分享。牛客网是一个IT求职者和程序员聚集的在线编程学习和交流社区,特别以算法面试题库著称,...

    最新Java面试宝典pdf版

    11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-&gt;(一千零一拾一元整)输出。 81 三. html&JavaScript&ajax部分 82 1. 判断第二个日期比第一...

    java面试题大全(2012版)

    11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-&gt;(一千零一拾一元整)输出。 81 三. html&JavaScript;&ajax;部分 82 1. 判断第二个日期比第...

    java面试宝典2012

    11、有数组a[n],用java代码将数组元素顺序颠倒 87 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-&gt;(一千零一拾一元整)输出。 88 三. html&JavaScript;&ajax;部分 89 1. 判断第二个日期比第...

    Java面试宝典2012版

    11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-&gt;(一千零一拾一元整)输出。 81 三. html&JavaScript;&ajax;部分 82 1. 判断第二个日期...

    Java面试宝典2012新版

    11、有数组a[n],用java代码将数组元素顺序颠倒 80 12.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-&gt;(一千零一拾一元整)输出。 81 三. html&JavaScript;&ajax;部分 82 1. 判断第二个日期比第...

    C#编程经验技巧宝典

    76 &lt;br&gt;0111 计算字符串中子字符串出现的次数 76 &lt;br&gt;0112 获得字符串中大写字母的个数 77 &lt;br&gt;0113 获得某字符在字符串中最后出现的位置 78 &lt;br&gt;0114 如何找出字符串中某一字符的所有位置 78...

Global site tag (gtag.js) - Google Analytics