1. 程式人生 > >窮舉一個字串的子序列

窮舉一個字串的子序列

import java.util.*;
public class Zixulie {
    public static Set<List> set=new HashSet<List>();//用於儲存窮舉的結果
    public static List temp=new ArrayList<>();
    public static void main(String args[]){
       System.out.println("hello");
       Scanner in=new Scanner(System.in);
       while(in.hasNext()){
           String str=in.nextLine();
           char ch[]=str.toCharArray();
           dfs(0,ch);
           System.out.println(set.size());
           //列印結果
           for(List list:set){
               System.out.println(list);
           }
       }
    }
    public static void dfs(int pos,char ch[]){
        if(pos>=ch.length)
            return;
        //pos位置的元素未加進來
        set.add(new ArrayList<>(temp));
        dfs(pos+1,ch);
        //pos位置的元素加進來
        temp.add(ch[pos]);
        set.add(new ArrayList<>(temp));
        dfs(pos+1,ch);
        temp.remove(temp.size()-1);
    }
}