Как найти слово, в котором число различных символов минимально?

523 просмотра
0
0 Комментариев

Как найти слово, в котором число различных символов минимально? Если таких слов несколько, найти первое из них.

Как это можно сделать?


Добавить комментарий

2 Answers

Python Опубликовано 12.12.2018
0

Если символ это Unicode codepoint, то чтобы найти слово с минимальным кол-вом символов из списка words:

word = min(words, key=lambda w: len(set(w)))

Если символ это символ, видимый пользователю (grapheme cluster):

import regex as re # pip install regex
word = min(words, key=lambda w: len(set(re.findall(r'\X', w))))

Если слова в тексте разделены символами пробелов (включая новый строки и Юникодные символы), то words = text.split().

Добавить комментарий
0

Я так понял, что вам нужно в заданной строке найти слово, в котором число УНИКАЛЬНЫХ символов минимально (сколько раз они повторяются неважно)? Тогда что-то типа такого (если разделитель слов — пробелы):

def f(string):
    for i in string.split(' '):
        if (len(set(string)) > len(set(i))):
            string = i
    return string

UPD

Добавил вариант на случай ввода строки в форме NFD (спасибо @jfs):

import regex
def f1(string):
 
    def uniq(s):
        return regex.findall(r'\X', s, regex.U)
 
    for i in string.split(' '):
        if (len(uniq(string)) > len(uniq(i))):
            string = i
    return string

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up