你能帮助我吗?
我有问题:
如何返回一个数字,可通过字符串串联收到的所有号码,可以构造一个最小数。
例:
一种。输入:[1,2,3] - >输出:123
湾输入:[1,10,100] - >输出:100101
C。输入:[100,97,23,1] - >输出:10012397
d。输入:[9041,376,5,10] - >输出:1037659041
谢谢你的帮助
这是我的代码,解决问题(我希望这可以帮助任何人谁需要它)的基础上螺纹:
感谢名单以@DavidWinder约排列线索
function submit()
{
var num = [];
var smallest = 9;
//get the numbers
$('input[name^="num"]').each(function()
{
if ($(this).val() != '')
{
num.push($(this).val());
}
});
var letters = num.toString();
var size = num.length;
$('#result').empty();
var testResults = permutate.getPermutations(letters, size);
var min = 99999999;
$.each(testResults, function(index, item)
{
// $('#result').append("<li>" + item + "</li>");
if (item < min)
{
min = item;
}
});
$('#result').html("Smallest possible number = " + min);
}
//====================================================
var permutate = (function()
{
var results = [];
function doPermute(input, output, used, size, level)
{
if (size == level)
{
var word = output.join('');
results.push(word);
return;
}
level++;
for (var i = 0; i < input.length; i++)
{
if (used[i] === true)
{
continue;
}
used[i] = true;
output.push(input[i]);
doPermute(input, output, used, size, level);
used[i] = false;
output.pop();
}
}
return {
getPermutations: function(input, size)
{
var chars = input.split(',');
var output = [];
var used = new Array(chars.length);
doPermute(chars, output, used, size, 0);
return results;
}
}
})();
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<input type="text" name="num[1]"> <br />
<input type="text" value=74 name="num[2]"> <br />
<input type="text" name="num[1]"> <br />
<input type="text" value=36 name="num[2]"> <br />
<input type="text" name="num[1]"> <br />
<input type="text" name="num[2]"> <br />
<input type="text" value=51 name="num[1]"> <br />
<input type="text" value=98 name="num[2]"> <br />
<input type="text" name="num[1]"> <br />
<input type="text" name="num[2]"> <br />
<input type="submit" id="submit" onclick="submit()">
<div id='result'>Result</div>
</body>
</html>