Я пытаюсь проверить, содержит ли два целых числа один и тот же набор цифр.Тот же набор цифр между двумя целыми числами Javascript
equivalent(123, 321) // -> true
equivalent(413, 1453) // -> false
equivalent(2002, 2200) // -> true
equivalent(542, 545) // -> false
Я начал отключать эту функцию с:
function equivalent(a,b) {
let stringA = a.toString().match(/[1-9]/g);
let stringB = b.toString().match(/[1-9]/g);
}
я не знаю, нужно ли использовать хэш-карту, чтобы отобразить каждое вхождение цифры и увеличивают вперед, однако я не мог проверьте, совпадают ли два объекта друг с другом.
Какой метод наиболее оптимален (с точки зрения пространственно-временной сложности) и какой метод является наиболее легко читаемым или и тем, и другим? Благодарю.
Редактировать: Извините, но не уточнил мой вопрос. Я хочу проверить, содержат ли два целых числа одинаковые цифры и одинаковое количество этих цифр.
бы '.ToString(). Length' быть проще? – j08691
Если я правильно понимаю, кроме одинаковой длины, цифры в них также должны быть одинаковыми, верно? –
Если он всегда будет положительным целым числом (т. Е. Просто цифрами, запятыми, десятичными точками или отрицательными знаками), предложение @ j08691 - это путь. – talemyn