Знайдіть закручені слова!


41

Не запитуйте мене, як і чому, але, кодуючи проект, я помітив, що символи пари слів мають певний зразок, який посилається на алфавіт, я з'єднав кожен символ слів олівцем на алфавіті, і я отримав два спіралі, потім я помітив, що перша спіраль була за годинниковою стрілкою, а друга - проти годинникової стрілки, та інші характеристики ... тому я назвав їх закрученими словами !

Вихровий Слово може бути:

  1. за годинниковою або проти годинникової стрілки
  2. відцентровий або відцентровий

Ось кілька прикладів завихрення слів :

Діаграма скручених слів

Завдання 1:

Напишіть повну програму або функцію, яка візьме слово зі стандартного введення та виведе, якщо це Swirling Word та його характеристики, у читаному форматі, розширеному тексті, 3 символах, прапорах тощо.

Тестові приклади та приклади результатів для різних слів (але ви можете вирішити, як представити результати):

EARTH, GROUP            > NO        // NOT A SWIRLING WORD
OPERA, STAY, IRIS       > SW,CF,CW  // SWIRLING WORD, CENTRIFUGAL, CLOCKWISE
MINER, TAX, PLUG, META  > SW,CF,CC  // SWIRLING WORD, CENTRIFUGAL, COUNTERCLOCKWISE
AXIOM, AXIS, COOK       > SW,CP,CW  // SWIRLING WORD, CENTRIPETAL, CLOCKWISE
WATCH, YETI, PILL       > SW,CP,CC  // SWIRLING WORD, CENTRIPETAL, COUNTERCLOCKWISE

MORE EXAMPLES OF FALSE TEST CASES (NOT SWIRLING WORDS): 
EARTH, GROUP, OUTPUT, WORD, CONNECTION, ODD, MOM, DAD, 
CHARACTER, EXAMPLE, QUESTION, NEWSLETTER, OTHER

Правила:

  1. З'єднання між першими двома символами повинно бути вгору (як на графіці), все парне з'єднання має бути вихідним , усі непарні з'єднання повинні бути вгору .
  2. Ви можете проігнорувати верхній / нижній регістр або розглянути / перетворити всі у великі регістри або всі в малі регістри.
  3. Вхідні слова - це лише символи в алфавітному діапазоні AZ, без пробілів, без розділових знаків тощо.
  4. Якщо слово має подвійні символи, як-от "GROOVE", ви повинні згорнути подвійний знак на один символ: "GROOVE"> "GROVE".
  5. Введені слова будуть містити щонайменше 3 різних символів. Такі слова, як "MOM", "DAD", "LOL" - невірні слова.
  6. Можна пропускати кілька разів того самого символу, як "IRIS".
  7. Найкоротший код виграє.

Завдання 2:

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

Щасливого кодування!


15
Гарні схеми! :) (І приємний виклик теж.))
Мартін Ендер

Чи буде опускання "Swirling" допустимим вихідним форматом, оскільки це мається на увазі, коли вхід не "закручується"?
Мартін Ендер

@MartinEnder Так, так як це зрозуміло , коли це закрученої чи ні, може бути порожнім «не» і «1» для «так», і т.д. (Рад , що вам сподобалися діаграми і виклик! :))
Маріо

1
@TimmyD Але не всі кумедні слова кружляють. :)
Мартін Ендер

2
@Lynn Дякую за оцінку та пропозиції, я спробую вдосконалити на майбутнє. Я додав правило "видалити подвійне", щоб передбачити, що люди запитують у мене такі речі, як "що ми робимо, коли є подвійні"? > Ви можете вважати парний пар одним символом, оскільки від "L" перехід до "L" - нульова відстань :) Хіба що я хотів додати складних труднощів заради себе.
Маріо

Відповіді:


11

MATL , 33 31 30 байт

lydhg)dt|dZSXz&=wZSdh?4M1)3M1)

Введення є великими літерами (або малими літерами, але не змішаним).

Вихід:

  • Якщо слово не закручене: вихід не виробляється
  • Якщо він закручений: два числа виробляються різними рядками:
    • Перше число 1/ -1 вказує відцентровий / відцентровий.
    • Друге число 1/ `-1 'вказує за годинниковою / проти годинникової стрілки.

Спробуйте в Інтернеті! Або перевірити всі тестові випадки (код модифікований, щоб прийняти всі входи та створити два вихідних числа в одному рядку)

Пояснення

Візьмемо 'OPERAA'приклад як приклад.

Перша частина коду видаляє подвійні літери:

l     % Push 1
      %   STACK: 1
y     % Take input implicitly from below, and duplicate
      %   STACK: 'OPERAA', 1, 'OPERAA'
d     % Convert to code points and compute differences
      %   STACK: 'OPERAA', 1, [1 -11  13 -17 0]
h     % Concatenate horizontally
      %   STACK: 'OPERAA', [1 1 -11  13 -17 0]
g     % Convert to logical
      %   STACK: 'OPERAA', [true true true true true false]
)     % Index
      %   STACK: 'OPERA'

Тепер ми перевіряємо, чи відстань між літерами не зменшується (необхідна умова, щоб слово закрутилося):

d     % Convert to code points and compute differences
      %   STACK: [1 -11  13 -17]
t|    % Duplicate and take absolute value
      %   STACK: [1 -11  13 -17], [1 11  13 17]
d     % Differences
      %   STACK: [1 -11  13 -17], [10 2 4]
ZS    % Signum
      %   STACK: [1 -11  13 -17], [1 1 1]
Xz    % Remove zeros (gives a vertical vector). Needed for words like 'IRIS',
      % where some consecutive distances are equal
      %   STACK: [1 -11  13 -17], [1; 1; 1]
&=    % All pairwise equality comparisons. Gives a matrix. If all the signs 
      % were equal the matrix will contain all ones
      %   STACK: [1 -11  13 -17], [1 1 1; 1 1 1; 1 1 1]

Потім ми перевіряємо, чи букви бувають вперед і назад (це інша умова, щоб слово закрутилося):

w     % Swap
      %   STACK: [1 1 1; 1 1 1; 1 1 1], [1 -11  13 -17]
ZS    % Signum
      %   STACK: [1 1 1; 1 1 1; 1 1 1], [1 -1 1 -1]
d     % Differences
      %   STACK: [1 1 1; 1 1 1; 1 1 1], [-2 2 -2]

Нарешті, ми перевіряємо, чи виконуються дві умови, і в цьому випадку виробляють вихід:

h     % Concatenate horizontally
      %   STACK: [1 1 1 1 1 1 1 1 1 -2 2 -2]
?     % If all elements are nonzero
  4M  %   Push first signum array without zeros, from the automatic clipboard
      %     STACK: [1; 1; 1]
  1)  %   Get first element (tells if first difference was positive or negative)
      %     STACK: 1
  3M  %   Push second signum array, from the automatic clipboard
      %     STACK: 1, [1 -1 1 -1]
  1)  %   Get first element (tells if first movement was right or left)
      %     STACK: 1, 1
      %   Implicitly end if
      % Implicitly display

6

Математика, 117 111 байт

Дякуємо JHM за збереження 6 байтів, що робить його нечутливим до завантаження!

 {o=OrderedQ/@{a=Abs[d=Differences[#&@@@Split@LetterNumber@#]],Reverse@a},d[[1]]>0,Or@@o&&Max[Most[d]Rest@d]<0}&

Безіменна функція, яка займає рядок і повертає вкладений список булевих знаків у формі {{B1,B2},B3,B4}. B4 записує, чи є слово закрученим (а якщо його немає, решта результатів - сміття). Якщо слово закручене, B1 записує, чи є це слово відцентровим, B2 записує, чи є це слово центральним, а B3 записує, чи є це слово за годинниковою стрілкою (True) або проти годинникової стрілки (False).

Ось довша версія , що пост-процеси (перша лінія) вище функції (рознесені на протязі 2 - го-п'яті лінії) , щоб зробити його ідентичним OP: NOякщо слова не крутяться, і відповідний вибір {SW,CF,CW}, {SW,CF,CC}, {SW,CP,CW}або {SW,CP,CC}якщо слово закручене:

If[#3, {SW, If[#[[1]], CF, CP], If[#2, CW, CC]}, NO] & @@
  {o = OrderedQ /@
    {a = Abs[d = Differences[# & @@@ Split@LetterNumber@#]], Reverse@a},
  d[[1]] > 0,
  Or @@ o && Max[Most[d] Rest@d] < 0} &

Пояснення таке саме, як у відповіді CJam Мартіна Ендера, з однією додатковою приміткою: перелік послідовних відмінностей повинен чергуватися в знаку, щоб слово закрутилося, і це можна виявити, переконавшись, що всі продукти пар послідовних відмінностей є негативними (ось що Max[Most[d]Rest@d]<0робить).

Запускаючи функцію на всіх 40000 слів Mathematica WordList[], ми знаходимо наступні 8-літерні завихрені слова, які є найдовшими у відповідних видах завихрення:

operetta    {SW, CF, CW}
opposite    {SW, CF, CW}
stowaway    {SW, CF, CW}
assassin    {SW, CP, CW}
assessor    {SW, CP, CW}
baccarat    {SW, CF, CC}
keenness    {SW, CF, CC}
positive    {SW, CF, CC}

(Брауні вказує на positiveвідсутність подвійних літер і менше повторених літер, ніж stowaway.)

Але абсолютним чемпіоном є 9-літерне центропетальне слово проти годинникової стрілки vassalage!


1
Ви можете зберегти 3 байти, використовуючи LetterNumberзамість них ToCharacterCodeта ще 3 байти, використовуючи Most[d]замість Drop[d,-1].
JungHwan Min

5

Scala, 110 байт

def/(s:String)={val ? =s.sliding(2).map(t=>(t(0)-t(1)).abs).toSeq
(Seq(?,?reverse)indexOf(?sorted),s(0)<s(1))}

Повертається кортеж (a,b)с

  • a == 1 якщо s є центропетальним
  • a == 0 якщо s відцентровий
  • a == -1 якщо s не закручується

і

  • b == true якщо s - за годинниковою стрілкою
  • b == false якщо s - проти годинникової стрілки
  • b може бути істинним або хибним, якщо s не закручується

Пояснення:

def/(s:String)={      //define a method called / with a String argument
  val ? =s            //define ? as...
    .sliding(2)       //an iterator for each two consecutive elements
    .map(t=>          //foreach 2 chars
      (t(0)-t(1)).abs //get the absolute value of their difference
    ) 
    .toSeq            //and convert the iterator to a Seq, because iterator doesn't have reverse and sorted methods
  (                   //return a tuple of
    Seq(?,?reverse)     //a Seq of ? and reversed ?
    .indexOf(?sorted)   //and check which of them is sorted ?
  ,                   //and
   s(0)< s(1)          //the difference bewteen the first two elements of the string.
  )
}

5

Желе , 30 байт

3Ŀḟ0ṠE
ÑṠḟ0Ṃ
ÑAI
OIḟ0
ÇṠḢ;2Ŀ;Ñ

TryItOnline
Або подивіться тестові випадки (з невеликою зміною, оскільки саме останняÑвказуватиме на нову головну посилання)

(Моя відсутність навички прикування, ймовірно, коштує тут декількох байт)
Всі верхні або всі нижні.
Повертає список прапорів [D, F, S]:
S: прядіння = 1 / не крутиться = 0
F: відцентровий = 1 (круговий = 0) відцентровий = -1
D: за годинниковою стрілкою = 1 / проти годинникової стрілки = -1
- якщо S = 0 інші прапори досі оцінюються, хоча вони не містять корисної інформації.

Як?

3Ŀḟ0ṠE      - Link 1, isSpinning: s
3Ŀ          - call link 3 as a monad with s
  ḟ0        - filter out zeros
    Ṡ       - sign
     E      - all equal?

ÑṠḟ0Ṃ       - Link 2, centrifugal(-1), circular(0) or centripetal(1): s
Ñ           - call next link (3) as a monad with s
 Ṡ          - sign (+1 for positive changes, -1 for negative changes, 0 for no change)
  ḟ0        - filter out zeros (ignore these for cases like "IRIS")
    Ṃ       - minimum (will be the only value for spinning words)
            -    (circular words like "DAD", now excluded, yield min([])=0)

ÑAI         - Link 3, absolute change of moves over alphabet: s
Ñ           - call next link (4) as a monad with s
 A          - absolute
  I         - differences

OIḟ0        - Link 4, non-zero moves over alphabet: s
O           - ordinal cast
 I          - differences
  ḟ0        - filter out zeros

ÇṠḢ;2Ŀ;Ñ    - Main link: s
Ç           - call last link (4) as a monad with s
 Ṡ          - sign
  Ḣ         - head (clockwise / anticlockwise: 1 / -1)
   ;  ;     - concatenate
    2Ŀ      - call link (2) as a monad with s
       Ñ    - call next link (1) as a monad with s

1
Я думаю, ви переживаєте те, що я тут називаю «синдром новачка». Я відчуваю себе точно так само, як і ти. Можливо, Деніс тут може допомогти. Але я поставив +1, просто тому, що побачив, що це можливо в Jelly. Також ви можете зняти круглий чохол; його більше не існує.
Ерік Аутгольфер

Дякую за помилку про кругові слова - як виявляється, 6 байт для їх задоволення були насправді непотрібними, оскільки мінімум порожнього списку є 0таким, що це все ще працює і для них!
Джонатан Аллан

Отже, це має працювати на них? Я бачу, у вас все ще є circular(0)всередині вашого пояснення, можливо, прийшов час також його зняти.
Ерік Аутгольфер

Це не потрібно, ні - але цей код все-таки робиться після видалення того, що я використовував, щоб явно змусив це зробити, через те, що min([])=0 jelly.tryitonline.net/#code=W13huYI&input= - Зауважте, що оскільки кругові слова зараз ніколи очікуваний вклад, у харчуванні для них немає проблем.
Джонатан Аллан

Я просто попросив вас двічі перевірити. І я зрозумів, що ти маєш на увазі min([])==0, але я подумав, що це все-таки пограбує.
Ерік Аутгольфер

3

CJam , 39 байт

r{2ew::-V}:D~-_:g_0=\D#)!@:zD-:g_0=\(-!

Спробуйте в Інтернеті!

Вхід може бути великим або малим, але не змішаним.

Програма ненавмисно вказує слова, які не обов'язково є відцентровими чи відцентровими, але в іншому випадку відповідають вимогам спіралі. Вони описані як "кругові" на графіку нижче.

Для інтерпретації результатів використовуйте цю діаграму:

SPIRAL (output contains four 1s)
-11-11 : Clockwise Centrifugal
-1111  : Clockwise Centripetal
11-11  : Counter-clockwise Centrifugal
1111   : Counter-clockwise Centripetal

CIRCULAR (output contains two 1s)
-11    : Clockwise Circular
11     : Counter-clockwise Circular

NONSPIRAL (output contains a 0)


Пояснення:

Програма насправді оцінює, чи починається послідовність ненульових різниць між символами позитивними чи негативними, якщо вона чергується за знаком, чи величини починають збільшуватися чи зменшуватися та чи продовжує це робити. Якщо величини не збільшуються або зменшуються, програма перерветься, працюючи на порожньому масиві. Основні кроки показані нижче (цей код також покаже хід стека):

r{2ew::-V}:D~-   e# take difference of overlapping pairs, removing 0s handles duplicates
               ede# store difference function plus 0 as D, it's multipurpose
_:g_0=\          e# compute signs differences, keep first to show starting direction
               ede# -1 = CLOCKWISE, 1 = COUNTERCLOCKWISE
D#)!@            e# difference of signs includes 0 if not alternating, keep in stack
               ede# 1 = ALTERNATING, 0 = NOT ALTERNATING
:zD-:g           e# signs of difference of absolute values, ignoring 0s (fixed magnitude)
_0=\             e# keep first sign in stack to indicate how the sequence starts
               ede# -1 = INCREASING, 1 = DECREASING
(-!              e# remove first item from entire list and see if nothing remains
               ede# 1 = EMPTY(MONOTONE), 0 = NONEMPTY

3

PHP, 322 байт

for(;++$i<strlen($z=preg_replace("#(.)\\1#","$1",$argv[1]));){$t[]=$z[$i-1]<=>$z[$i]?:0;$o[]=$z[0]<=>$z[$i];$i<2?:$k[]=$z[$i-2]<=>$z[$i];}$s=preg_match("#^1?(-11)*(-1)?$#",join($t))?($t[0]!=1?1:2):0;$s+=2*preg_match($r="#^(-1|0)?([01](-1|0))*[01]?$#",join($o));$s*=preg_match($r,join($k));count_chars($z,3)[2]?:$s=0;echo$s;

для отримання більш гарного результату echo["n","+P","-P","+F","-F"][$s];

Розширена версія

for(;++$i<strlen($z=preg_replace("#(.)\\1#","$1",$argv[1]));){
    $t[]=$z[$i-1]<=>$z[$i]?:0;
    $o[]=$z[0]<=>$z[$i];
    $i<2?:$k[]=$z[$i-2]<=>$z[$i];
    }
$s=preg_match("#^1?(-11)*(-1)?$#",join($t))?($t[0]!=1?1:2):0; #Clockwise direction or not
$s+=2*preg_match($r="#^(-1|0)?([01](-1|0))*[01]?$#",join($o)); # True centrifugal
$s*=preg_match($r,join($k)); #true or false second test for not
count_chars($z,3)[2]?:$s=0; # word must have >2 different characters
echo$s;# short output
echo["n","+P","-P","+F","-F"][$s]; #long output alternative

Завдання 2 секунди без короткого правила подвоєння

4 -F вбивство 11 байт позитивізує 10 байт

3 + F опозитивний 10 байт логотипу 9 байт

2 -P васаж 9 байт саркоколь, сасарара 8 байт

1 + P асамсея 9 байт апанаж, арамейка, аргонон, аукціон, аукціон, нагороджений, Кренель, екссесія, екзит, очей 7 байт

Візуалізуйте слово

header('Content-Type: image/svg+xml; charset=UTF-8');
$w=$_GET["w"]??"OOPERRA";
$w=strtoupper($w);
echo '<?xml version="1.0" encoding="UTF-8"?>'
.'<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">'

.'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 -100 420 400">'
.'<title>Swirl Word</title><desc>Viualize a Word</desc>';
echo '<text x="210" y="-50" text-anchor="middle" font-family="arial">'.$w.'</text>';

foreach(range("A","Z")as $x=>$c){
    echo '<text x="'.(15+$x*15).'" y="110" text-anchor="middle" font-family="arial">'.$c.'</text>';
    $r[$c]=15+$x*15;
}
for($i=0;++$i<strlen($w);){
    echo '<path d="M '.($r[$w[$i-1]]).',105 A '.($radius=abs($r[$w[$i]]-$r[$w[$i-1]])/2).' '.($radius).' 0 0 0 '.($r[$w[$i]]).',105" style="stroke:gold; stroke-width:1px;fill:none;" />';
}
echo '</svg>';  

у фрагменті - результат створеного у мене SVG

<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 -100 420 400"><title>Swirl Word</title><desc>Viualize a Word</desc><text x="210" y="-50"  text-anchor="middle" font-family="arial">KILLINGNESS</text><text x="15" y="110" text-anchor="middle" font-family="arial">A</text><text x="30" y="110" text-anchor="middle" font-family="arial">B</text><text x="45" y="110" text-anchor="middle" font-family="arial">C</text><text x="60" y="110" text-anchor="middle" font-family="arial">D</text><text x="75" y="110" text-anchor="middle" font-family="arial">E</text><text x="90" y="110" text-anchor="middle" font-family="arial">F</text><text x="105" y="110" text-anchor="middle" font-family="arial">G</text><text x="120" y="110" text-anchor="middle" font-family="arial">H</text><text x="135" y="110" text-anchor="middle" font-family="arial">I</text><text x="150" y="110" text-anchor="middle" font-family="arial">J</text><text x="165" y="110" text-anchor="middle" font-family="arial">K</text><text x="180" y="110" text-anchor="middle" font-family="arial">L</text><text x="195" y="110" text-anchor="middle" font-family="arial">M</text><text x="210" y="110" text-anchor="middle" font-family="arial">N</text><text x="225" y="110" text-anchor="middle" font-family="arial">O</text><text x="240" y="110" text-anchor="middle" font-family="arial">P</text><text x="255" y="110" text-anchor="middle" font-family="arial">Q</text><text x="270" y="110" text-anchor="middle" font-family="arial">R</text><text x="285" y="110" text-anchor="middle" font-family="arial">S</text><text x="300" y="110" text-anchor="middle" font-family="arial">T</text><text x="315" y="110" text-anchor="middle" font-family="arial">U</text><text x="330" y="110" text-anchor="middle" font-family="arial">V</text><text x="345" y="110" text-anchor="middle" font-family="arial">W</text><text x="360" y="110" text-anchor="middle" font-family="arial">X</text><text x="375" y="110" text-anchor="middle" font-family="arial">Y</text><text x="390" y="110" text-anchor="middle" font-family="arial">Z</text><path d="M 165,105 A 15 15 0 0 0 135,105" style="stroke:gold; stroke-width:1px;fill:none;" /><path d="M 135,105 A 22.5 22.5 0 0 0 180,105" style="stroke:gold; stroke-width:1px;fill:none;" /><path d="M 180,105 A 0 0 0 0 0 180,105" style="stroke:gold; stroke-width:1px;fill:none;" /><path d="M 180,105 A 22.5 22.5 0 0 0 135,105" style="stroke:gold; stroke-width:1px;fill:none;" /><path d="M 135,105 A 37.5 37.5 0 0 0 210,105" style="stroke:gold; stroke-width:1px;fill:none;" /><path d="M 210,105 A 52.5 52.5 0 0 0 105,105" style="stroke:gold; stroke-width:1px;fill:none;" /><path d="M 105,105 A 52.5 52.5 0 0 0 210,105" style="stroke:gold; stroke-width:1px;fill:none;" /><path d="M 210,105 A 67.5 67.5 0 0 0 75,105" style="stroke:gold; stroke-width:1px;fill:none;" /><path d="M 75,105 A 105 105 0 0 0 285,105" style="stroke:gold; stroke-width:1px;fill:none;" /><path d="M 285,105 A 0 0 0 0 0 285,105" style="stroke:gold; stroke-width:1px;fill:none;" /></svg>


Великий переглядач скручених слів! :) Можливо, ви можете спробувати з’єднати персонажів з пів еліпсами замість півкільцями. Він буде більш компактним і виглядатиме «динамічніше». Але все одно чудово виглядає!
Маріо

@Mario це потрібно тільки фактор '.(.8*$radius).'замість '.($radius).'і , якщо замінити ($radius).' 0 0 0з ($radius).' 0 0 '.(($w[$i-1]<$w[$i]?1:0)^(($i-1)%2)).'програмою не має напрямок лагодження
Йорг Hülsermann

2

Haskell, 148 байт

z f=tail>>=zipWith f
g c=and.z c.filter(/=0).map abs.z(-).map fromEnum
(a:b:r)%c|a==b=(b:r)%c|1<3=c a b
f s|a<-[g(>=)s,g(<=)s]=or a:a++[s%(<),s%(>)]

Спробуйте це на Ideone.

Введення має бути або al нижнім, або всім великим регістром.
Вихід список з п'яти булевих: [SW?, CF?, CP?, CW?, CC?].

f "positive" -> [True,True,False,False,True]

Це виявилося довше, ніж очікувалося, особливо передача згортання повторних символів займає близько 40 байт.

Спочатку я порівнював лише перші два символи, щоб отримати CWчи CCраніше помітити, що тестові вітрини подобаються bbaчи bbcдійсні теж і перемогли цей підхід.


2

Пітон, 152 байти:

lambda C:[C[-1]in max(C)+min(C),C[1]>C[0]]*all([[i>g,i<g][[h%2>0,h%2<1][C[1]>C[0]]]for i,g,h in filter(lambda i:i[0]!=i[1],zip(C,C[1:],range(len(C))))])

Анонімна лямбда-функція. Телефонувати як print(<Function Name>('<String>')).

Приймає введення як великі, або великі регістри, але не змішані регістри .

Виводить масив, що не містить нічого ( []), якщо слово не swirly, або масив у наступному форматі:

  • 1-й елемент призначений True/Falseдля Centrifugal/Centripetal.
  • 2-й елемент призначений True/Falseдля Clockwise/Counterclockwise.

Спробуйте в Інтернеті! (Ідеон)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.