Выведите все повторяющиеся цифры заданного числа в отсортированном порядке.
Python имеет внутренние функции счетчика лжи, счетчика и операторские функции, которые можно использовать для печати всех повторяющихся цифр, присутствующих в числе, в отсортированном порядке. Следующий пример поможет вам более четко понять эту концепцию.
Пример
Предположим, мы взяли входную строку. Теперь мы напечатаем все повторяющиеся/дубликаты цифры, присутствующие в заданном входном номере, в отсортированном порядке, используя вышеуказанные методы.
Вход
inputNum = 5322789124199
Выход
1 2 9
В приведенном выше входном номере 2, 1 и 9 — повторяющиеся цифры. Таким образом, эти цифры отсортированы в порядке возрастания.
Следовательно, выходные повторяющиеся цифры в отсортированном порядке составляют 1,2,9.
Использование функции count()
Функция подсчета строк()
Возвращает нет. сколько раз данное значение встречается в строке.
Синтаксис
string.count(value, start, end)
функция сортировки()
Метод sort() сортирует исходный список на месте. Это означает, что метод sort() меняет порядок элементов списка.
list.sort()
функция соединения()
join() — это строковая функция в Python, которая используется для объединения элементов последовательности, разделенных разделителем строк. Эта функция соединяет элементы последовательности для преобразования в строку.
Алгоритм (шаги)
Ниже приводится алгоритм/шаги, которые необходимо выполнить для выполнения желаемой задачи:
Создайте переменную для хранения введенного номера.
Инициализируйте пустой список для хранения повторяющихся цифр во входном числе.
Используйте функцию str() для преобразования введенного числа в строку.
Используйте цикл for для обхода каждого символа строки.
Используйте оператор if Conditional, чтобы проверить, превышает ли частота текущего символа 1 с помощью функции count() , и он отсутствует в результирующем списке дубликатов.
Используйте функцию append() (добавляет элемент в список в конце), чтобы добавить этот символ в результирующий список (дубликат-список), если условие истинно.
Используйте функцию sort(), чтобы отсортировать полученный список дубликатов в порядке возрастания.
-
Используйте функцию join(), чтобы преобразовать полученный список дубликатов в строку и распечатать его.
Пример
Следующая программа возвращает все повторяющиеся цифры, присутствующие во входном числе, в отсортированном порядке, используя функцию count():
# input number
inputNum = 5322789124199
# storing resultant repeating digits in a number in a list
duplicatesList = []
# converting input number to a string
newString = str(inputNum)
# traversing through each character if a string
for c in newString:
# checking whether the frequency of the current character is greater than 1
# and it is not present in a resultant duplicates list
if(newString.count(c) > 1 and c not in duplicatesList):
# appending that character to the duplicates list if the condition is true
duplicatesList.append(c)
# sorting the resultant duplicates list
duplicatesList.sort()
# converting resultant duplicates list to string
print(' '.join(duplicatesList))
Выход
При выполнении вышеуказанная программа сгенерирует следующий вывод:
1 2 9
Использование хеширования
Следующая программа возвращает все повторяющиеся цифры, присутствующие во входном числе, в отсортированном порядке с использованием хеширования:
Пример
def getDuplicateNum(inputNum):
# setting the count of all the digits (from 0 to 9) to 0
count = [0] * 10
# converting the input number to a string
newString = str(inputNum)
# traversing through each character of a string
for c in newString:
# getting the integer value of the current character
curr_digit = int(c)
# incrementing the count of digits by 1
count[curr_digit] += 1
# Traversing in frequency(count)
for k in range(10):
# checking whether the frequency of the digit is greater than 1
if (count[k] > 1):
# printing that digit of the count is greater than 1
print(k, end=" ")
# input number
inputNum = 5322789124199
# calling the above defined getDuplicateNum() by passing
# input number as an argument to it
getDuplicateNum(inputNum)
Выход
1 2 9
Использование функции Счетчик()
Следующая программа возвращает все повторяющиеся цифры, присутствующие во входном числе, в отсортированном порядке, используя функцию Counter():
Пример
# importing Counter from the collections module
from collections import Counter
# input number
inputNum = 5322789124199
# storing resultant repeating digits in a number in a list
duplicatesList = []
# converting input number to a string
newString = str(inputNum)
# getting the frequency of each character of a string as a key-value pair
charFrequency = Counter(newString)
# traversing through the key, value pairs of characters frequency
for k, v in charFrequency.items():
# checking whether current value is greater than 1(repeating)
if v > 1:
# appending that corresponding key to the duplicates list if the condition is true
duplicatesList.append(k)
# sorting the resultant duplicates list
duplicatesList.sort()
# converting resultant duplicates list to string
print(' '.join(duplicatesList))
Выход
1 2 9
Использование функцииoperator.countOf()
Функцияoperator.countOf
Функция countOf() модуля оператора возвращает количество элементов в a, равных b.
Синтаксис
operator.countOf(a, b)
Параметры
a — список или строка или любой другой тип данных.
b — значение, для которого мы должны подсчитать количество вхождений в «a»
Следующая программа возвращает все повторяющиеся цифры, присутствующие во входном числе, в отсортированном порядке, используя функциюoperator.countOf():
Пример
import operator as op
# input number
inputNum = 5322789124199
# storing resultant repeating digits in a number in a list
duplicatesList = []
# converting input number to a string
newString = str(inputNum)
# traversing through each character if a string
for c in newString:
# checking whether the frequency of the current character is greater than 1
# and it is not present in a resultant duplicates list
if(op.countOf(newString, c) > 1 and op.countOf(duplicatesList, c) == 0):
# appending that character to duplicates list if the condition is true
duplicatesList.append(c)
# sorting the resultant duplicates list
duplicatesList.sort()
# converting resultant duplicates list to string
print(' '.join(duplicatesList))
Выход
1 2 9
Заключение
В этой статье мы научились печатать все повторяющиеся цифры заданного числа в отсортированном порядке. Использование новой функции — это еще одна вещь, которую мы изучили с помощью функцииoperator.countOf(), чтобы определить, сколько элементов содержится в итерируемом объекте.