Find smallest permutation of given number

Here given code implementation process.

// Java Program for
// Find smallest permutation of given number
public class Permutation
{
	public void smallestPermutation(String num)
	{
		int n = num.length();
		if (n == 0)
		{
			return;
		}
		// Assume num is valid number
		int[] digit = new int[10];
		String zero = "";
		String result = "";
		for (int index = 0; index < 10; ++index)
		{
			digit[index] = 0;
		}
		// Count the frequency of digit in given number
		for (int index = 0; index < n; ++index)
		{
			if (num.charAt(index) == '0')
			{
				// Collect zero
				zero += "0";
			}
			else
			{
				// Count frequency of digit
				digit[num.charAt(index) - '0'] += 1;
			}
		}
		for (int index = 1; index < 10; ++index)
		{
			if (digit[index] != 0)
			{
				while (digit[index] > 0)
				{
					result += "" + index;
					digit[index]--;
				}
				// When in case zero exist
				result += zero;
				zero = "";
			}
		}
		// In case only zero
		result += zero;
		System.out.println("Given Number : " + num);
		System.out.println("Result : " + result);
	}
	public static void main(String[] args)
	{
		Permutation task = new Permutation();
		// Test
		// num    = "4851233"
		// output = "1233458"
		task.smallestPermutation("4851233");
		// num    = "745809023"
		// output = "200345789"
		task.smallestPermutation("745809023");
	}
}

Output

Given Number : 4851233
Result : 1233458
Given Number : 745809023
Result : 200345789
// Include header file
#include <iostream>

#include <string>

using namespace std;
// C++ Program for
// Find smallest permutation of given number
class Permutation
{
	public: void smallestPermutation(string num)
	{
		int n = num.length();
		if (n == 0)
		{
			return;
		}
		// Assume num is valid number
		int digit[10];
		string zero = "";
		string result = "";
		for (int index = 0; index < 10; ++index)
		{
			digit[index] = 0;
		}
		// Count the frequency of digit in given number
		for (int index = 0; index < n; ++index)
		{
			if (num[index] == '0')
			{
				// Collect zero
				zero += "0";
			}
			else
			{
				// Count frequency of digit
				digit[num[index] - '0'] += 1;
			}
		}
		for (int index = 1; index < 10; ++index)
		{
			if (digit[index] != 0)
			{
				while (digit[index] > 0)
				{
					result += ""
					 +  to_string(index);
					digit[index]--;
				}
				// When in case zero exist
				result += zero;
				zero = "";
			}
		}
		// In case only zero
		result += zero;
		cout << "Given Number : " << num << endl;
		cout << "Result : " << result << endl;
	}
};
int main()
{
	Permutation *task = new Permutation();
	// Test
	// num    = "4851233"
	// output = "1233458"
	task->smallestPermutation("4851233");
	// num    = "745809023"
	// output = "200345789"
	task->smallestPermutation("745809023");
	return 0;
}

Output

Given Number : 4851233
Result : 1233458
Given Number : 745809023
Result : 200345789
package main
import "strconv"
import "fmt"
// Go Program for
// Find smallest permutation of given number
type Permutation struct {}
func getPermutation() * Permutation {
	var me *Permutation = &Permutation {}
	return me
}
func(this Permutation) smallestPermutation(num string) {
	var n int = len(num)
	if n == 0 {
		return
	}
	// Assume num is valid number
	var digit = make([] int, 10)
	var zero string = ""
	var result string = ""
	for index := 0 ; index < 10 ; index++ {
		digit[index] = 0
	}
	// Count the frequency of digit in given number
	for index := 0 ; index < n ; index++ {
		if num[index] == '0' {
			// Collect zero
			zero += "0"
		} else {
			// Count frequency of digit
			digit[num[index] - '0'] += 1
		}
	}
	for index := 1 ; index < 10 ; index++ {
		if digit[index] != 0 {
			for (digit[index] > 0) {
				result += strconv.Itoa(index)
				digit[index]--
			}
			// When in case zero exist
			result += zero
			zero = ""
		}
	}
	// In case only zero
	result += zero
	fmt.Println("Given Number : ", num)
	fmt.Println("Result : ", result)
}
func main() {
	var task * Permutation = getPermutation()
	// Test
	// num    = "4851233"
	// output = "1233458"
	task.smallestPermutation("4851233")
	// num    = "745809023"
	// output = "200345789"
	task.smallestPermutation("745809023")
}

Output

Given Number : 4851233
Result : 1233458
Given Number : 745809023
Result : 200345789
// Include namespace system
using System;
// Csharp Program for
// Find smallest permutation of given number
public class Permutation
{
	public void smallestPermutation(String num)
	{
		int n = num.Length;
		if (n == 0)
		{
			return;
		}
		// Assume num is valid number
		int[] digit = new int[10];
		String zero = "";
		String result = "";
		for (int index = 0; index < 10; ++index)
		{
			digit[index] = 0;
		}
		// Count the frequency of digit in given number
		for (int index = 0; index < n; ++index)
		{
			if (num[index] == '0')
			{
				// Collect zero
				zero += "0";
			}
			else
			{
				// Count frequency of digit
				digit[num[index] - '0'] += 1;
			}
		}
		for (int index = 1; index < 10; ++index)
		{
			if (digit[index] != 0)
			{
				while (digit[index] > 0)
				{
					result += "" + index;
					digit[index]--;
				}
				// When in case zero exist
				result += zero;
				zero = "";
			}
		}
		// In case only zero
		result += zero;
		Console.WriteLine("Given Number : " + num);
		Console.WriteLine("Result : " + result);
	}
	public static void Main(String[] args)
	{
		Permutation task = new Permutation();
		// Test
		// num    = "4851233"
		// output = "1233458"
		task.smallestPermutation("4851233");
		// num    = "745809023"
		// output = "200345789"
		task.smallestPermutation("745809023");
	}
}

Output

Given Number : 4851233
Result : 1233458
Given Number : 745809023
Result : 200345789
<?php
// Php Program for
// Find smallest permutation of given number
class Permutation
{
	public	function smallestPermutation($num)
	{
		$n = strlen($num);
		if ($n == 0)
		{
			return;
		}
		// Assume num is valid number
		$digit = array_fill(0, 10, 0);
		$zero = "";
		$result = "";
		// Count the frequency of digit in given number
		for ($index = 0; $index < $n; ++$index)
		{
			if ($num[$index] == '0')
			{
				// Collect zero
				$zero .= "0";
			}
			else
			{
				// Count frequency of digit
				$digit[ord($num[$index]) - ord('0')] += 1;
			}
		}
		for ($index = 1; $index < 10; ++$index)
		{
			if ($digit[$index] != 0)
			{
				while ($digit[$index] > 0)
				{
					$result .= "".strval($index);
					$digit[$index]--;
				}
				// When in case zero exist
				$result .= $zero;
				$zero = "";
			}
		}
		// In case only zero
		$result .= $zero;
		echo("Given Number : ".$num.
			"\n");
		echo("Result : ".$result.
			"\n");
	}
}

function main()
{
	$task = new Permutation();
	// Test
	// num    = "4851233"
	// output = "1233458"
	$task->smallestPermutation("4851233");
	// num    = "745809023"
	// output = "200345789"
	$task->smallestPermutation("745809023");
}
main();

Output

Given Number : 4851233
Result : 1233458
Given Number : 745809023
Result : 200345789
// Node JS Program for
// Find smallest permutation of given number
class Permutation
{
	smallestPermutation(num)
	{
		var n = num.length;
		if (n == 0)
		{
			return;
		}
		// Assume num is valid number
		var digit = Array(10).fill(0);
		var zero = "";
		var result = "";
		// Count the frequency of digit in given number
		for (var index = 0; index < n; ++index)
		{
			if (num.charAt(index) == '0')
			{
				// Collect zero
				zero += "0";
			}
			else
			{
				// Count frequency of digit
				digit[num.charAt(index).charCodeAt(0) - '0'.charCodeAt(0)] += 1;
			}
		}
		for (var index = 1; index < 10; ++index)
		{
			if (digit[index] != 0)
			{
				while (digit[index] > 0)
				{
					result += "" + index;
					digit[index]--;
				}
				// When in case zero exist
				result += zero;
				zero = "";
			}
		}
		// In case only zero
		result += zero;
		console.log("Given Number : " + num);
		console.log("Result : " + result);
	}
}

function main()
{
	var task = new Permutation();
	// Test
	// num    = "4851233"
	// output = "1233458"
	task.smallestPermutation("4851233");
	// num    = "745809023"
	// output = "200345789"
	task.smallestPermutation("745809023");
}
main();

Output

Given Number : 4851233
Result : 1233458
Given Number : 745809023
Result : 200345789
#  Python 3 Program for
#  Find smallest permutation of given number
class Permutation :
	def smallestPermutation(self, num) :
		n = len(num)
		if (n == 0) :
			return
		
		#  Assume num is valid number
		digit = [0] * (10)
		zero = ""
		result = ""
		index = 0
		#  Count the frequency of digit in given number
		while (index < n) :
			if (num[index] == '0') :
				#  Collect zero
				zero += "0"
			else :
				#  Count frequency of digit
				digit[ord(num[index]) - ord('0')] += 1
			
			index += 1
		
		index = 1
		while (index < 10) :
			if (digit[index] != 0) :
				while (digit[index] > 0) :
					result += str(index)
					digit[index] -= 1
				
				#  When in case zero exist
				result += zero
				zero = ""
			
			index += 1
		
		#  In case only zero
		result += zero
		print("Given Number : ", num)
		print("Result : ", result)
	

def main() :
	task = Permutation()
	#  Test
	#  num    = "4851233"
	#  output = "1233458"
	task.smallestPermutation("4851233")
	#  num    = "745809023"
	#  output = "200345789"
	task.smallestPermutation("745809023")

if __name__ == "__main__": main()

Output

Given Number :  4851233
Result :  1233458
Given Number :  745809023
Result :  200345789
#  Ruby Program for
#  Find smallest permutation of given number
class Permutation 
	def smallestPermutation(num) 
		n = num.length
		if (n == 0) 
			return
		end

		#  Assume num is valid number
		digit = Array.new(10) {0}
		zero = ""
		result = ""
		index = 0
		#  Count the frequency of digit in given number
		while (index < n) 
			if (num[index] == '0') 
				#  Collect zero
				zero += "0"
			else
 
				#  Count frequency of digit
				digit[num[index].ord - '0'.ord] += 1
			end

			index += 1
		end

		index = 1
		while (index < 10) 
			if (digit[index] != 0) 
				while (digit[index] > 0) 
					result += index.to_s
					digit[index] -= 1
				end

				#  When in case zero exist
				result += zero
				zero = ""
			end

			index += 1
		end

		#  In case only zero
		result += zero
		print("Given Number : ", num, "\n")
		print("Result : ", result, "\n")
	end

end

def main() 
	task = Permutation.new()
	#  Test
	#  num    = "4851233"
	#  output = "1233458"
	task.smallestPermutation("4851233")
	#  num    = "745809023"
	#  output = "200345789"
	task.smallestPermutation("745809023")
end

main()

Output

Given Number : 4851233
Result : 1233458
Given Number : 745809023
Result : 200345789
import scala.collection.mutable._;
// Scala Program for
// Find smallest permutation of given number
class Permutation()
{
	def smallestPermutation(num: String): Unit = {
		var n: Int = num.length();
		if (n == 0)
		{
			return;
		}
		// Assume num is valid number
		var digit: Array[Int] = Array.fill[Int](10)(0);
		var zero: String = "";
		var result: String = "";
		var index: Int = 0;
		// Count the frequency of digit in given number
		while (index < n)
		{
			if (num.charAt(index) == '0')
			{
				// Collect zero
				zero += "0";
			}
			else
			{
				// Count frequency of digit
				digit(num.charAt(index).toInt - '0'.toInt) += 1;
			}
			index += 1;
		}
		index = 1;
		while (index < 10)
		{
			if (digit(index) != 0)
			{
				while (digit(index) > 0)
				{
					result += "" + index.toString();
					digit(index) -= 1;
				}
				// When in case zero exist
				result += zero;
				zero = "";
			}
			index += 1;
		}
		// In case only zero
		result += zero;
		println("Given Number : " + num);
		println("Result : " + result);
	}
}
object Main
{
	def main(args: Array[String]): Unit = {
		var task: Permutation = new Permutation();
		// Test
		// num    = "4851233"
		// output = "1233458"
		task.smallestPermutation("4851233");
		// num    = "745809023"
		// output = "200345789"
		task.smallestPermutation("745809023");
	}
}

Output

Given Number : 4851233
Result : 1233458
Given Number : 745809023
Result : 200345789
import Foundation;
// Swift 4 Program for
// Find smallest permutation of given number
class Permutation
{
	func smallestPermutation(_ value: String)
	{	let num = Array(value);
		let n: Int = num.count;
		if (n == 0)
		{
			return;
		}
		// Assume num is valid number
		var digit: [Int] = Array(repeating: 0, count: 10);
		var zero: String = "";
		var result: String = "";
		var index: Int = 0;
		// Count the frequency of digit in given number
		while (index < n)
		{
			if (num[index] == "0")
			{
				// Collect zero
				zero += "0";
			}
			else
			{
				// Count frequency of digit
				digit[Int(UnicodeScalar(String(num[index]))!.value) - 
                      Int(UnicodeScalar(String("0"))!.value)] += 1;
			}
			index += 1;
		}
		index = 1;
		while (index < 10)
		{
			if (digit[index]  != 0)
			{
				while (digit[index] > 0)
				{
					result +=  String(index);
					digit[index] -= 1;
				}
				// When in case zero exist
				result += zero;
				zero = "";
			}
			index += 1;
		}
		// In case only zero
		result += zero;
		print("Given Number : ", value);
		print("Result : ", result);
	}
}
func main()
{
	let task: Permutation = Permutation();
	// Test
	// num    = "4851233"
	// output = "1233458"
	task.smallestPermutation("4851233");
	// num    = "745809023"
	// output = "200345789"
	task.smallestPermutation("745809023");
}
main();

Output

Given Number :  4851233
Result :  1233458
Given Number :  745809023
Result :  200345789
// Kotlin Program for
// Find smallest permutation of given number
class Permutation
{
	fun smallestPermutation(num: String): Unit
	{
		val n: Int = num.length;
		if (n == 0)
		{
			return;
		}
		// Assume num is valid number
		val digit: Array < Int > = Array(10)
		{
			0
		};
		var zero: String = "";
		var result: String = "";
		var index: Int = 0;
		// Count the frequency of digit in given number
		while (index < n)
		{
			if (num.get(index) == '0')
			{
				// Collect zero
				zero += "0";
			}
			else
			{
				// Count frequency of digit
				digit[num.get(index).toInt() - '0'.toInt()] += 1;
			}
			index += 1;
		}
		index = 1;
		while (index < 10)
		{
			if (digit[index] != 0)
			{
				while (digit[index] > 0)
				{
					result += index.toString();
					digit[index] -= 1;
				}
				// When in case zero exist
				result += zero;
				zero = "";
			}
			index += 1;
		}
		// In case only zero
		result += zero;
		println("Given Number : " + num);
		println("Result : " + result);
	}
}
fun main(args: Array < String > ): Unit
{
	val task: Permutation = Permutation();
	// Test
	// num    = "4851233"
	// output = "1233458"
	task.smallestPermutation("4851233");
	// num    = "745809023"
	// output = "200345789"
	task.smallestPermutation("745809023");
}

Output

Given Number : 4851233
Result : 1233458
Given Number : 745809023
Result : 200345789


Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment







© 2021, kalkicode.com, All rights reserved