Разделение строки без разрывов строки в список строк с максимальным количеством столбцов

Самый простой: выведите целый набор в Набор (использующий Набор (Набор) конструктор или Set.addAll), затем посмотрите, имеет ли Набор тот же размер как ArrayList.

List<Integer> list = ...;
Set<Integer> set = new HashSet<Integer>(list);

if(set.size() < list.size()){
    /* There are duplicates */
}

Обновление: Если я понимаю Ваш вопрос правильно, у Вас есть 2-й массив Блока, как в

Таблица блоков [] [];

и Вы хотите обнаружить, если какая-либо строка их имеет дубликаты?

В этом случае, я мог сделать следующее, предположив, что реализации Блока "равняются" и "хэш-код" правильно:

for (Block[] row : table) {
   Set set = new HashSet<Block>(); 
   for (Block cell : row) {
      set.add(cell);
   }
   if (set.size() < 6) { //has duplicate
   }
}

я не на 100% уверен в этом для синтаксиса, таким образом, могло бы быть более безопасно записать это, поскольку

for (int i = 0; i < 6; i++) {
   Set set = new HashSet<Block>(); 
   for (int j = 0; j < 6; j++)
    set.add(table[i][j]);
 ...

Set.add возвращает булев false, если добавляемый объект уже находится в наборе, таким образом, Вы могли выровнять короткое замыкание, и кипа на любом добавляют, что возвращается false, если все, что Вы хотите знать, - существуют ли какие-либо дубликаты.

6
задан Karim 10 September 2009 в 17:34
поделиться

2 ответа

РЕДАКТИРОВАТЬ

То, что вы ищете, это textwrap , но это только часть решения, а не полное. Чтобы принять во внимание новую строку, вам необходимо сделать следующее:

from textwrap import wrap
'\n'.join(['\n'.join(wrap(block, width=50)) for block in text.splitlines()])

>>> print '\n'.join(['\n'.join(wrap(block, width=50)) for block in text.splitlines()])

Within eight hours of Wilson's outburst, his
Democratic opponent, former-Marine Rob Miller, had
received nearly 3,000 individual contributions
raising approximately $100,000, the Democratic
Congressional Campaign Committee said.

Wilson, a conservative Republican who promotes a
strong national defense and reining in the size of
government, won a special election to the House in
2001, succeeding the late Rep. Floyd Spence,
R-S.C. Wilson had worked on Spence's staff on
Capitol Hill and also had served as an intern for
Sen. Strom Thurmond
13
ответ дан 8 December 2019 в 13:47
поделиться

Возможно, вы захотите использовать функцию переноса текста в стандартной библиотеке:

http://docs.python.org/library/textwrap.html

4
ответ дан 8 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: