编辑代码

class Main {
	public static void main(String[] args) {
        //JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。
        String s = "babaabbabbabb";
        char[] p = new char[s.length()];
        for(int i = 0;i<s.length();i++)
        {
            p[i] = s.charAt(i);
        }
        f(p,0);
	}
    public static void f(char[] s,int k)
    {
        if(k==13)
        {
            if(check(s)==true)
            {
                print(s);
            }
        }
        for(int i = k;i<s.length;i++)
        {
            char temp = s[k];
            s[k] = s[i];
            s[i] = temp;
            f(s,k+1);
            temp = s[i];
            s[i] = s[k];
            s[k] = temp;
        }


    }
    public static void print(char[] s)
    {
        String ans =  "";
        for(int i = 0;i<s.length;i++)
        {
            ans = ans+s[i];
        }
        System.out.println(ans);
    }
    public static boolean check(char[] s)
    {
        int inital = 2;
        int sum = inital;
        boolean usedUp = false;
        for(int i = 0;i<s.length;i++)
        {
            if(s[i]=='a')
            {
                sum = 2*sum;
            }
            else if(s[i]=='b')
            {
                sum = sum-1;
            }
        }
        if(sum==2)
        {
            usedUp = true;
        }
        return usedUp;
    }
}