No copy-past and compilation, please! Try to understand, what this Java code does just reading it. Be honest with yourself, cheaters die along :)

// Java program to print ***
public class Secret 
    public static void main(String[] args) 
    { 
        String str = "ABC"; 
        int n = str.length(); 
        Secret secret = new Secret(); 
        secret.doYourDance(str, 0, n-1); 
    } 
  
    /** 
     * *** function 
     * @param str string to ***
     * @param l starting index 
     * @param r end index 
     */
    private void doYourDance(String str, int l, int r) 
    { 
        if (l == r) 
            System.out.println(str); 
        else
        { 
            for (int i = l; i <= r; i++) 
            { 
                str = swap(str,l,i); 
                doYourDance(str, l+1, r); 
                str = swap(str,l,i); 
            } 
        } 
    } 
  
    /** 
     * Swap Characters at position 
     * @param a string value 
     * @param i position 1 
     * @param j position 2 
     * @return swapped string 
     */
    public String swap(String a, int i, int j) 
    { 
        char temp; 
        char[] charArray = a.toCharArray(); 
        temp = charArray[i] ; 
        charArray[i] = charArray[j]; 
        charArray[j] = temp; 
        return String.valueOf(charArray); 
    } 
  
view raw puzzle1.java hosted with ❤ by GitHub

Got it? was is hard, smart a**s? :) Stay tuned for more puzzles!

 

Think
Puzzle

More like this

Get in touch

Get in touch

Frankfurt am Main, Germany (Sales)

60354

Eckenheimer Schulstraße, 20

+38 (098) 630-49-85

info@a5.ua

Kharkiv, Ukraine (Development)

61023

Trinklera street, 9

+38 (050) 908-31-07

info@a5.ua

Burgas, Bulgaria (Development)

8008

бул. „Транспортна“ 15, Northern Industrial Zone

+359 877 350129

info@a5.ua