2017-01-10 2 views
0

ПОСТАНОВКАграф колебались строка в векторе

Иногда, когда компьютерные программы имеют ограниченное количество цветов для использования, они используют технику, называемую размывания. Сглаживание - это когда вы используете шаблон, состоящий из разных цветов, так что когда цвета просматриваются вместе, они выглядят как другой цвет. Например, вы можете использовать шаблон шахматной доски черно-белых пикселей для достижения иллюзии серого.

Вы пишете программу, чтобы определить, какая часть экрана покрыта определенным цветом. Учитывая экран компьютера, на котором каждый пиксель имеет определенный цвет, а также список всех сплошных цветов, которые составляют затухающий цвет, верните количество пикселей на экране, которые используются для создания затухающего цвета. Каждый пиксель будет представлен символом в screen. Каждый символ в screen и в dithered будет заглавной буквой ('A' - 'Z'), представляющей цвет.

Предположим, что любой пиксель, который является цветом, содержащимся в dithered, является частью цвета с затуханием.

ОПРЕДЕЛЕНИЕ

Класс: ImageDithering
Метод: count
Параметры: string, vector <string>
Возвращает: int
Метод подписи: int count(string dithered, vector <string> screen)

СДЕРЖИВАЮЩИЕ

  • dithered будет содержать от 2 до 26 заглавных букв ('A' - 'Z'), включительно.
  • Не будет повторяющихся символов в dithered.
  • screen будет содержать от 1 до 50 элементов включительно.
  • Каждый элемент screen будет содержать от 1 до 50 букв верхнего регистра ('A' - 'Z') включительно.
  • Все элементы screen будут содержать одинаковое количество символов.

Примеров

0)

"BW" 
{ "AAAAAAAA", 
    "ABWBWBWA", 
    "AWBWBWBA", 
    "ABWBWBWA", 
    "AWBWBWBA", 
    "AAAAAAAA"} 

Возвращает: 24

Здесь наш трепетал цвет может состоять из черных (B) и белых (W) пикселей, составляя оттенок серого. На снимке расположен серый серый квадрат, окруженный другим цветом (A).

1)

"BW" 
{ "BBBBBBBB", 
    "BBWBWBWB", 
    "BWBWBWBB", 
    "BBWBWBWB", 
    "BWBWBWBB", 
    "BBBBBBBB"} 

Возвращает: 48

Вот та же картина, но с внешним цветом заменены черными пикселями. Хотя на самом деле внешние пиксели не образовывают цветовой оттенок, ваш алгоритм все же должен считать, что они являются частью усеченного шаблона.

2)

"ACEGIKMOQSUWY" 
{ "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWX", 
    "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWX", 
    "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWX", 
    "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWX", 
    "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWX", 
    "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWX"} 

Возвращает: 150

Изображение вертикальных полос, каждая другая полоса считается частью колебались цвета.

3)

"CA" 
{"BBBBBBB", 
"BBBBBBB", 
"BBBBBBB"} 

Возвращает: 0

колебались цвет нет.

4)

"DCBA" 
{"ACBD"} 

Возвращает: 4

Порядок цветов не имеет значения.

Я не понимаю, как подсчитать эти помеченные строки в этих векторах.

Как и в случае с примером 0, линия «ABWBWBWA» имеет 3 "BW", считая слева и 2 "BW", считая также справа. Как я должен считать это?

ответ

1

Вы не считаете экземпляры всей строки (например, «BW»), вы подсчитываете экземпляры отдельных символов (например, «B» или «W»). Смотрите спецификацию (курсив мой):

Данный экран компьютера, где каждый пиксель имеет определенный цвет, и список всех однотонных цветов, которые составляют колебались цвет, возвращает количество пикселей на экране, которые используются для создания размытого цвета. Каждый пиксель будет представлен символом на экране. Каждый символ на экране и в канаве будет заглавной буквой («A» - «Z»), представляющей цвет.

Предположим, что любой пиксель, который является цветом, содержащимся в увлажненном цвете, является частью размытого цвета.

Пример 0 имеет 24 экземпляра символов «B» и «W» на множестве экранов; пример 1 содержит 48 символов «B» или «W»; и т. д. Вы должны уметь это вывести из примеров, так как пример 2 содержит нулевые экземпляры целевой строки «ACEGIKMOQSUWY», но возвращаемое значение отличное от нуля.