Поиск по сайту:

Выведите все повторяющиеся цифры заданного числа в отсортированном порядке.


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(), чтобы определить, сколько элементов содержится в итерируемом объекте.

Статьи по данной тематике