Czy to dziwne słowo?

29

Wyzwanie

Biorąc pod uwagę jedno słowo jako dane wejściowe, określ, czy słowo jest nieparzyste, czy parzyste.

Dziwne i parzyste słowa

Załóż ogólne zasady:

odd + odd = even
even + odd = odd
odd + even = odd
even + even = even

W alfabecie litery nieparzyste to:

aeiou

A litery parzyste to:

bcdfghjklmnpqrstvwxyz

To samo dotyczy wielkich liter ( AEIOUsą nieparzyste i BCDFGHJKLMNPQRSTVWXYZsą parzyste).

Następnie „dodajesz” każdą z liter w słowie razem. Na przykład słowo catsto jest równoważne z:

even + odd + even + even

Co upraszcza:

odd + even

Co dodatkowo upraszcza:

odd

Więc słowo catsjest dziwne.

Przykłady

Input:  trees
Output: even

Input:  brush
Output: odd

Input:  CAts
Output: odd

Input:  Savoie
Output: even

Input:  rhythm
Output: even

Zasady

Wszystkie wprowadzone dane będą pojedynczym słowem, które będzie zawierać tylko znaki alfabetyczne.

Jeśli słowo jest nieparzyste, wypisz prawdziwą wartość. Jeśli słowo jest parzyste, wypisz wartość falsey.

Zwycięski

Najkrótszy kod w bajtach wygrywa.

Rozpad beta
źródło
1
Czy możesz dodać przykład słowa bez nieparzystych liter.
Hedi
@Hedi Dodałem jeden rytm
Beta Decay
7
Ex cię zadzwonić . Odd Word ™ jest już znakiem towarowym firmy JLee. Jest to niedozwolone użycie tego terminu. : P
Deusovi
2
To błaga o przesłanie wyrażenia regularnego
Rohan Jhunjhunwala,
2
Czy wprowadzane dane zawierają tylko znaki alfabetyczne?
DJMcMayhem

Odpowiedzi:

7

05AB1E , 6 bajtów

lžMÃgÉ

Wyjaśnienie

l       # convert to lower case
 žMÃg   # count odd letters
     É  # true if odd else false

Wypróbuj online!

Emigna
źródło
18

EXCEL, 79 bajtów:

=MOD(SUMPRODUCT(LEN(A1)-LEN(SUBSTITUTE(LOWER(A1),{"a","e","i","o","u"},""))),2)

input:
tę funkcję można umieścić w dowolnym miejscu Z WYJĄTKIEM A1
Zadaj swoje pytanie w A1.

Wyjście: 0 jeśli parzyste, 1 jeśli nieparzyste.

Rozpad beta
źródło
13

JavaScript (ES6), 34 41 33 32 bajty

Zaoszczędzono 1 bajt dzięki Arnauldowi:

s=>~s.split(/[aeiou]/i).length&1
  • Dziwne słowo: zwraca 1
  • Nawet słowa: zwraca 0


Poprzednie rozwiązania:

33 bajty dzięki Arnauldowi:

s=>s.split(/[aeiou]/i).length&1^1
  • Dziwne słowo: zwraca 1
  • Nawet słowa: zwraca 0

Innym sposobem bez operatorów bitowych:

s=>++s.split(/[aeiou]/i).length%2

41 bajtów:

(s,a=s.match(/[aeiou]/ig))=>a&&a.length%2
  • Dziwne słowo: zwraca 1
  • Parzyste słowa z nieparzystymi literami: zwraca 0
  • Parzyste słowa bez nieparzystych liter: zwraca null

42 bajty do zwrotu 0zamiast null:

(s,a=s.match(/[aeiou]/ig))=>a?a.length%2:0

34 bajty, łamanie słów bez nieparzystych liter:

f=s=>s.match(/[aeiou]/ig).length%2

Zaoszczędzono 2 bajty dzięki Shaunowi H.

s=>s.match(/[aeiou]/ig).length%2
Hedi
źródło
1
Ta metoda zrywa się, gdy słowo nie ma samogłosek. To powiedziawszy: f=nie jest potrzebne, a wywołanie exec na obiekcie wyrażenia regularnego jest krótsze. s=>/[aeiou]/ig.exec(s).length%2
Shaun H
Nie mam ten sam wynik z execz gflagą.
Hedi
cholera, tak, zignoruj ​​to, f = wciąż nie jest potrzebne
Shaun H
Można zrobić s=>s.split(/[aeiou]/i).length&1^1?
Arnauld,
1
s=>~s.split(/[aeiou]/i).length&1jest w rzeczywistości o jeden bajt krótszy.
Arnauld,
8

Brain-Flak 206 196 192 178 + 3 = 181 bajtów

Wypróbuj online!

([]<{({}[((((((()()())){}){}){}){}){}()]){({}[({}())]){({}[({})]){({}[({}()())]){({}[({})]){({}<>)(<>)}}}}}{}{}}><>[[]]<>()()){(({}[<>(())<>()()])){{}({}())((<>)<>)}{}}{}<>({}<>)  

Wymaga to działania -cflagi w trybie ASCII, dodając dodatkowe 3 bajty do długości programu.

Nie golfił

([]<
{({}[(((((()()()){}){}){}){}){}()])
 {
  ({}[()()()()])
  {
   ({}[()()()()])
   {
    ({}[(()()()){}])
    {
     ({}[(()()()){}])
     {
      ({}<>)
      (<>)
     }
    }
   }
  }
 }
 {}
}
><>[[]]<>)
(<(()()<>)>)<>{({}[()])<>(({}()[({})])){{}(<({}({}))>)}{}<>}{}<>({}<{}><>)

Wyjaśnienie

Najpierw zapisz wysokość stosu do przyszłych celów

([]<...>

Następnie, gdy stos nie jest pusty (zakłada, że ​​żaden ze znaków nie jest równy zero)

{...}

Odejmij dziewięćdziesiąt siedem (i zachowaj 3 do późniejszych optymalizacji)

({}[((((((()()())){}){}){}){}){}()])

Jeśli nie jest zero (tj. Nie jest)

{...}

Odejmij 4 (i zapisz 4 do późniejszych optymalizacji)

({}[({}())])

Jeśli nie jest zero (tzn. Nie e)

{...}

Odejmij 4 (i zapisz 4 do późniejszych optymalizacji)

({}[({})])

Jeśli nie jest zero (tj. Nie i)

{...}

Odejmij 6 (i zapisz 6 do późniejszych optymalizacji)

({}[({}()())])

Jeśli nie jest zero (tzn. Nie o)

{...}

Odejmij 6 (zapisz 6, ponieważ program oczekuje jednego później)

({}[({})])

Jeśli nie jest zero (tj. Nie u)

{...}

Przenieś resztę do drugiego stosu i ustaw zero na aktywnym stosie, aby uciec od wszystkich ifs

({}<>)(<>)

Po ucieczce wszystkich ifów usuń zero i sześć

{}{}

Po przetworzeniu wszystkich znaków odejmij wysokość przesunięcia od pierwotnie zapisanej wysokości.

...<>[[]]<>)

Mod przez dwa

{(({}[<>(())<>()()])){{}({}())((<>)<>)}{}}{}<>({}<>) 
Kreator pszenicy
źródło
Myślę, że -cma tylko +1 bajt, ponieważ zawsze odpowiedź Perla dodaje tylko 1 bajt / flagę.
ThreeFx
1
@ThreeFx To dlatego, że perl -pe'code'jest tylko jeden bajt dłuższy niż perl -e'code'.
Dennis,
8

C, 42 bajty

f(char*s){return*s&&2130466>>*s&1^f(s+1);}

Działa to z GCC 4.x na procesorze x86-64. Wyniki mogą się różnić w zależności od konfiguracji.

Przetestować go na repl.it .

Kosztem kolejnych 5 bajtów można uniknąć niezdefiniowanego zachowania, więc kod powinien działać, o ile int ma szerokość co najmniej 32 bity.

f(char*s){return*s&&2130466>>(*s&31)&1^f(s+1);}

Jak to działa

Modulo 32 , kody wszystkich nieparzystych liter to 1 , 5 , 9 , 15 i 21 . 2130466 jest 32-bitową liczbą całkowitą, która ustawiła bity w tych pozycjach i nie ustawiła bitów we wszystkich innych.

Kiedy f jest wywoływany na łańcuch, najpierw sprawdza, czy pierwszy znak łańcucha jest bajtem zerowym (terminator łańcucha). Jeśli tak, *szwraca 0, a f zwraca 0 . W przeciwnym razie *spodaj kod literowy i &&zostanie wykonany odpowiedni argument logicznego AND ( ).

Ponieważ >>GCC generuje instrukcję zmiany. Na x86-64 CPU odpowiednie wskazówki dla 32-bitowej liczby całkowitej ignoruje wszystkie ale niższe 5 bitów w prawym argumencie, który zapobiega to zmniejszeniu *smodulo 32 . Prawe przesunięcie i następujące po nim bitowe AND z 1 wyodrębnia bit 2130466, który odpowiada literze, która będzie 1, jeśli tylko i tylko jeśli litera jest nieparzysta.

Następnie zwiększamy wskaźnik s (skutecznie odrzucając pierwszą literę), wywołujemy rekurencyjnie f na ściętym łańcuchu i bierzemy bitową XOR wyniku z góry oraz wynik wywołania rekurencyjnego.

Dennis
źródło
Świetna mądra praca!
Keyu Gan,
erees Zwróć 0 w Ideone, prawda?
RosLuP,
@RosLuP Nie, to nie jest poprawne. Działa to na moim komputerze i na repl.it (być może dlatego, że wersja GCC jest zupełnie inna).
Dennis,
Tak, to zdecydowanie kompilator. Z clang 3.7 działa również na Ideone .
Dennis
7

sed 44 (42 + 1 dla -n) 43

-1 dzięki Neilowi

s/[aeiou][^aeiou]*[aeiou]//gi
/[aeiou]/Ico

Drukuje ona nieparzyste i nic na parzyste

Riley
źródło
s/[aeiou][^aeiou]*[aeiou]//gimoże zaoszczędzić bajt, jeśli poprawnie policzyłem.
Neil
@Neil Yep! Chciałbym, żeby sed mógł przeprowadzić chciwe poszukiwania.
Riley,
7

Python, 41 bajtów

lambda s:sum(map(s.count,"aeiouAEIOU"))%2
xnor
źródło
6

Python, 42 bajty

lambda s:sum(c in"aeiouAEIOU"for c in s)%2

Nie wiele do wyjaśnienia tutaj. Funkcja bez nazwy, która zwraca 0 lub 1.

DJMcMayhem
źródło
6

Brain-Flak , 524, 446 , 422 bajtów

{(<((((()()()()){}){}){}<>)>)<>{({}[()])<>(({}[({})]())){{}(<({}({}))>)}{}<>}{}<>([(((({}<{}<>>))))]()){(<{}>)<>({}[()])<>}<>({}())<>{}([{}]()()()()()){(<{}>)<>({}[()])<>}<>({}())<>{}(((()()())){}{}[{}]){(<{}>)<>({}[()])<>}<>({}())<>{}(((()()()()())){}{}[{}]){(<{}>)<>({}[()])<>}<>({}())<>{}((((()()()){}())){}{}[{}]){(<{}>)<>({}[()])<>}<>({}())<>{}}(<(()())>)<>{({}[()])<>(({}[({})]())){{}(<({}({}))>)}{}<>}{}<>({}<{}<>>)

Wypróbuj online!

Wersja bez golfa, bardziej czytelna:

{((((()()()()){}){}){})(<({}<>)>)<>{({}[()])<>(({}()[({})])){{}(<({}({}))>)}{}<>}{}<>({}<{}><>)((((({})))))
(())
({}[{}]){(<{}>)<>({}[()])<>}<>({}())<>{}
(()()()()())
({}[{}]){(<{}>)<>({}[()])<>}<>({}())<>{}
(()()()()()()()()())
({}[{}]){(<{}>)<>({}[()])<>}<>({}())<>{}
(()()()()()()()()()()()()()()())
({}[{}]){(<{}>)<>({}[()])<>}<>({}())<>{}
(()()()()()()()()()()()()()()()()()()()()())
({}[{}])
{(<{}>)<>({}[()])<>}<>({}())<>{}}<>(()())(<({}<>)>)<>{({}[()])<>(({}()[({})])){{}(<({}({}))>)}{}<>}{}<>({}<{}><>){{}([()])
(<><>)}({}{}())
DJMcMayhem
źródło
Wersja Ungolfed nie działa (nie pasuje do linku TIO w komentarzu; _;)
Wheat Wizard
6
„bardziej czytelne”, chociaż powiedział
Rohan Jhunjhunwala,
6

Galaretka , 13 12 11 bajtów

-1 bajt dzięki @Luis Mendo (użyj, aby zastąpić %2)
-1 bajt dzięki @Dennis (użyj kompresji ciągu)

Œlf“¡ẎṢɱ»LḂ

Wszystkie przypadki testowe znajdują się w TryItOnline

W jaki sposób?

Œlf“¡ẎṢɱ»LḂ - Main link takes an argument - s
Œl          - lowercase(s)
   “¡ẎṢɱ»   - string of lowercase vowels (compression using the words a and eoui)
  f         - filter - keep only the vowels
         L  - length - the number of vowels
          Ḃ - Bit (modulo 2)

Niekonkurencyjne, 5 bajtów (ponieważ właśnie dodałem funkcję Øc)

fØcLḂ

Przypadki testowe również w TryItOnline

Tak jak powyżej, ale Øcdaje samogłoski alfabetu łacińskiego,'AEIOUaeiou'

Jonathan Allan
źródło
1
Myślę, że można zastąpić %2przez
Luis Mendo
7
euoi to okrzyk namiętnego uniesienia w starożytnych biesiadnych biesiadach , więc możesz użyć słownika i uzyskać samogłoski jako “¡ẎṢɱ».
Dennis,
@Dennis - LOL oczywiście!
Jonathan Allan
2
@Dennis Jak dokładnie to działa? Czy to tylko kompresja bazy, aby uzyskać indeks słowa w wielkim słowniku? Skąd pochodzi „a”?
DJMcMayhem
2
@DJMcMayhem jest to kompresja bazowa 250 przy użyciu słownika (który, jak sądzę, został pobrany z komputera Dennisa) z oddzieleniem krótkich (mniej niż 6 znaków) i długich słów. Niektóre kod zautomatyzować proces tworzenia skompresowanych ciągi został napisany przez Lynn. Nieużywane 6 bajtów to znaki identyfikujące ciąg Jelly “”«»‘’(istnieje również ciąg znaków dwóch znaków, ale używany w skompresowanych ciągach).
Jonathan Allan,
6

Haskell, 38 37 bajtów

odd.length.filter(`elem`"aeiouAEIOU")

Dzięki Angs za jeden bajt!

Gajówka
źródło
Prawda dla nieparzystych, więc musisz użyć oddzamiast even. Oszczędza jeden bajt!
Angs,
@Angs clever :)
BlackCap
4

Python 3, 53 bajtów

Można to prawdopodobnie pograć w golfa dalej:

lambda n:[x in 'aeiou' for x in n.lower()].count(1)&1
L. Steer
źródło
Usuń spacje między ini 'aeiou'a for, a użycie sumzapisać 8 bajtów: lambda n:sum(x in'aeiou'for x in n.lower())&1(choć jak widać z postu DJMcMayhem Korzystanie wszystkie dziesięć samogłosek jest także krótszy)
Jonathan Allan
1
Dzięki za wskazówki! Zauważyłem trochę spacji trochę po opublikowaniu, ale szczerze mówiąc, @DJMcMayhem i ja mieliśmy identyczne podejście, ponieważ jest to najlepsza wersja, jaką mogę sobie wyobrazić dla rozwiązania Python. Nie znałem sum()polecenia przed tym golfem, więc jeszcze raz się nauczyłem! Miłego dnia :)
L. Steer,
4

Java, 73

boolean f(String s){return s.replaceAll("(?i)[^aeiou]","").length()%2>0;}

widziałem kilka innych odpowiedzi w języku Java, w przeciwnym razie nie podzieliłbym się nimi. Dzięki Phaeze za uratowanie bajtu.

dpa97
źródło
1
Myślę, że możesz uratować bajt za pomocą%2>0
JustinM - Przywróć Monikę
4

C 52 bajty

h(o){o=strpbrk(o,"aeiouAEIOU");return o?1^h(o+1):0;}

główny i wynik:

main()
{int   k;
 char *a[]={"trees","brush","CAts","Savoie","rhythm", 0};

 for(k=0;a[k];++k)
     printf("[%s]=%s\n", a[k], h(a[k])?"odd":"even");
}

/*
91
[trees]=even
[brush]=odd
[CAts]=odd
[Savoie]=even
[rhythm]=even

*/
RosLuP
źródło
staram się używać int jako wskaźników, ale nie kompiluje się tam, gdzie użycie przekierowania * ... rozwiązanie wydrukowane tutaj tutaj było złe ...
RosLuP
h(o){return~-o?1^h(1+strpbrk(o,"aeiouAEIOU")):1;}oszczędza 3 bajty.
Dennis,
s; h (o) {s = ~ -o? 1 ^ h (1 + strpbrk (o, "aeiouAEIOU")): 1;} wynik znajduje się w zmiennej globalnej s ...
RosLuP
Niestety nie jest to dozwolone. Funkcje muszą być wielokrotnego użytku, a to się zepsuje, jeśli użyjesz go więcej niż jeden raz. Zapisywanie danych wyjściowych w zmiennej nie jest dozwolone, chyba że weźmiesz lokalizację jako dane wejściowe użytkownika.
Dennis,
Myślę, że w tym przypadku ponowne użycie jest możliwe, ponieważ wartość początkowa s teraz nie jest ważna ... ok, teraz myślę, że coś może pójść nie tak ... Dzięki
RosLuP 21.09.16
3

Pyth, 14 bajtów

%l@"aeiou"rQ02

Wypróbuj online!

Wyjaśnienie:

  @"aeiou"       Grab only the vowels
          rQ0      From lowercased input
 l                 Get the length of this
%            2     And mod 2 to check for oddness
Steven H.
źródło
3

Rubinowy, 30 bajtów

->w{w.scan(/[aeiou]/i).size%2}
m-chrzan
źródło
3

Vim, 32, 31 , 29 klawiszy

:s/[^aeiou]//gi
C<C-r>=len(@")%2<cr>

Ponieważ interpreter V jest wstecznie kompatybilny, możesz wypróbować go online! tutaj.

Jeden trzy bajty zapisane dzięki m-chrzan!

DJMcMayhem
źródło
1
Czy możesz to zrobić s/.../gizamiast s/\c.../g?
m-chrzan
@ m-chrzan Woah, niesamowita wskazówka. Dzięki!
DJMcMayhem
Również '<C-r>"'-> @".
m-chrzan
1
Dowiedziałem się około @"15 minut temu. Najlepszą wskazówką, jaką mam, jest użycie :help fooi /dokumentacji: P.
m-chrzan
2
Skoro mówimy o golfie, :h foojest krótszy. : P
DJMcMayhem
3

Java 7, 88

boolean f(char[]s){int x=0;for(char c:s)if("aeiouAEIOU".indexOf(c)>=0)++x;return x%2>0;}

Nie golfowany:

  boolean f(char[] s) {
    int x = 0;
    for (char c : s) {
      if ("aeiouAEIOU".indexOf(c) >= 0) {
        ++x;
      }
    }
    return x % 2 > 0;
  }

źródło
3

dimwit , 14 bajtów (niekonkurencyjny)

ar[aeiou]}et}T

Pomyślałem, że będzie to zabawne, proste wyzwanie na początek dla nowego języka.

Wyjaśnienie

  • a - wypchnij nową macierz do matrycy
  • r[aeiou]} - zlicz wystąpienie wszystkich wartości pasujących do wyrażenia regularnego „[aeiou]” w pierwszej tablicy (ponieważ pierwsza tablica zawiera dane wejściowe), ignorując wielkość liter i wypchnij tę wartość na koniec ostatniej tablicy.
  • e - jeśli ostatnia liczba w ostatniej tablicy jest parzysta (którą ustawiliśmy na liczbę wystąpień), wykonaj następne operacje aż do nawiasu zamykającego („}”)
  • t - zatrzymać wykonywanie, wyczyścić macierz i ustawić pierwszą wartość na false
  • }- koniec ebloku kodu
  • T - zatrzymać wykonywanie, wyczyścić macierz i ustawić pierwszą wartość na true

Wypróbuj online!

Użyj pola wprowadzania, aby wprowadzić słowo.

Wkrótce dodam dokumentację ...

MCMastery
źródło
2

PowerShell v2 +, 45 42 bajtów

($args[0]-replace'[^aeiouAEIOU]').Length%2

Pobiera dane wejściowe $args[0], wysyła je, -replaceaby usunąć wszystkie znaki inne niż samogłoska, bierze wynikowe .lengthi %2sprawdza, czy jest nieparzyste / parzyste.

Przykłady

PS C:\Tools\Scripts\golfing> 'trees','brush','CAts','Savoie','rhythm'|%{"$_ --> "+(.\is-it-an-odd-word.ps1 $_)}
trees --> 0
brush --> 1
CAts --> 1
Savoie --> 0
rhythm --> 0
AdmBorkBork
źródło
2

J, 20 bajtów

2|+/@e.&'aeiouAEOIU'

Proste podejście

Wyjaśnienie

2|+/@e.&'aeiouAEOIU'  Input: string S
     e.&'aeiouAEOIU'  Test each char in S for membership in 'aeiouAEOIU'
  +/@                 Sum those values
2|                    Take it modulo 2 and return
mile
źródło
Haha, właśnie opublikowałem odpowiedź J (teraz usuniętą) o 1 bajt dłużej. Dobra robota!
Conor O'Brien,
Gdzie jest polecenie „weź dane”?
RosLuP
@RosLuP Jest to czasownik (funkcja), który przyjmuje pojedynczy argument jako dane wejściowe. J korzysta z programowania ukrytego, więc polecenia są łączone w łańcuchy i niejawnie przekazują wartości
mile
2

Japt, 7 bajtów

1&Uè"%v

Przetestuj online! Wyjścia 1 dla nieparzystych, 0 dla parzystych.

Jak to działa

         // Implicit: U = input string
  Uè     // Count the number of matches of the following regex in the input:
    "%v  //   /[AEIOUaeiou]/g
1&       // Take only the first bit (convert 1, 3, 5, etc. to 1, and others to 0)
         // Implicit output
ETHprodukcje
źródło
2

Oktawa, 34 bajty

@(s)mod(nnz(~(s'-'aeiouAEIOU')),2)


s'-'aeiouAEIOU'    % Creates a 2D-matrix where each of the odd letters are 
                   % subtracted from the string s
~(s'-'aeiouAEIOU') % Negates that array, so the all zero elements become 1
nnz( .... )        % Counts all the non-zero elements (the odd letters)
mod(nnz( ....),2   % Takes this sum modulus 2

Jest to 6 bajtów krócej niż przy użyciu tradycyjnego podejścia ismember, @(s)mod(sum(ismember(s,'aeiouAEIOU')),2)oraz dwa bajty krótszy niż podejście regex: @(s)mod(nnz(regexpi(s,'[aeiou]')),2).

Sprawdź to tutaj .

Stewie Griffin
źródło
2

PHP, 41 bajtów

<?=count(spliti("[aeiou]",$argv[1]))%2-1;

To daje -1 dla prawdy i 0 dla falsey.

użytkownik59178
źródło
2

Mathematica, 44 bajty

OddQ@StringCount[#,Characters@"aeiouAEIOU"]&

Daje wartość True dla nieparzystego ciągu i False dla parzystej.

Julien Kluge
źródło
1
+1 do dowolnego mężczyzny lub kobiety uczącej się matematyki
Magic Octopus Urn
2

q, 29 bajtów

{mod[sum x in "aeiouAEIOU";2]}
Liam Baron
źródło
2

C # 64 62 56 50 bajtów

s=>1>s.Split("aeiouAEIOU".ToCharArray()).Length%2;
  • Już używamy linq, więc Contains zapisuje 2 bajty nad IndexOf
  • Korzystanie z metody przeciążenie Count oszczędza 6 bajtów
  • Dzięki @Milk za zaproponowanie zgrabnej metody i oszczędność 6 dodatkowych bajtów

Anonimowa funkcja, która pobiera ciąg znaków i zlicza nieparzyste litery, a następnie zwraca true, jeśli jest ich nieparzysta liczba, lub false, jeśli nie ma.

To nowe rozwiązanie dzieli ciąg na dowolny ze znaków w podanej tablicy znaków. Mechanika tego odwraca znaczenie %2wyniku; 0 jest teraz nieparzyste, a 1 nawet stąd 1>.

Wypróbuj online tutaj!

JustinM - Przywróć Monikę
źródło
Do string.Split()zliczenia samogłosek wystarczy 50 bajtów i nie potrzebujesz LINQ. s=>1>s.Split("aeiouAEIOU".ToCharArray()).Length%2;
mleko
@ mleko Dzięki za to bardzo miłe rozwiązanie.
JustinM - Przywróć Monikę
1

Retina , 19 bajtów

Mi`[aeiou]
[13579]$

Wypróbuj online! (Pierwszy wiersz włącza pakiet testowy oddzielony od linii).

Pierwszy wiersz zlicza samogłoski na wejściu. Druga linia sprawdza, czy wynik jest nieparzysty.

Martin Ender
źródło
1

MATL , 8 , 7 bajtów

13Y2mso

Wypróbuj online!

Wyjaśnienie:

13Y2    % Push the string 'aeiouAEIOU', a predefined literal. 
    m   % For each char of the input that is in that string, push a one. For every other element, push a zero.
     s  % Sum this array
      o % Mod 2
DJMcMayhem
źródło