窮舉一個字串的子序列
阿新 • • 發佈:2018-11-02
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); } }