Lexicographically smallest permutation with no digits at Original Index | Function to print the smallest permutation ; when n is even ; when n is odd ; handling last 3 digit ; add EOL and print result ; Driver Code
< ? php function smallestPermute ( $ n ) { $ res = array_fill ( 0 , $ n + 1 , " " ) ; if ( $ n % 2 == 0 ) { for ( $ i = 0 ; $ i < $ n ; $ i ++ ) { if ( $ i % 2 == 0 ) $ res [ $ i ] = chr ( 48 + $ i + 2 ) ; else $ res [ $ i ] = chr ( 48 + $ i ) ; } } else { for ( $ i = 0 ; $ i < $ n - 2 ; $ i ++ ) { if ( $ i % 2 == 0 ) $ res [ $ i ] = chr ( 48 + $ i + 2 ) ; else $ res [ $ i ] = chr ( 48 + $ i ) ; } $ res [ $ n - 1 ] = chr ( 48 + $ n - 2 ) ; $ res [ $ n - 2 ] = chr ( 48 + $ n ) ; $ res [ $ n - 3 ] = chr ( 48 + $ n - 1 ) ; } $ res [ $ n ] = ' \0' ; for ( $ i = 0 ; $ i < $ n ; $ i ++ ) { echo $ res [ $ i ] ; } } $ n = 7 ; smallestPermute ( $ n ) ; ? >