Có phải đó là một từ lẻ?


29

Thử thách

Cho một từ duy nhất làm đầu vào, xác định xem từ đó là số lẻ hay số chẵn.

Những từ lẻ và chẵn

Giả sử các quy tắc chung:

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

Trong bảng chữ cái, các chữ cái lẻ là:

aeiou

Và các chữ cái chẵn là:

bcdfghjklmnpqrstvwxyz

Điều tương tự áp dụng cho chữ in hoa ( AEIOUlà số lẻ và số chẵn BCDFGHJKLMNPQRSTVWXYZ).

Sau đó, bạn 'thêm' từng chữ cái trong từ lại với nhau. Ví dụ: từ catsnày tương đương với:

even + odd + even + even

Mà đơn giản hóa để:

odd + even

Mà đơn giản hóa hơn nữa để:

odd

Vì vậy, từ catsnày là số lẻ.

Ví dụ

Input:  trees
Output: even

Input:  brush
Output: odd

Input:  CAts
Output: odd

Input:  Savoie
Output: even

Input:  rhythm
Output: even

Quy tắc

Tất cả đầu vào sẽ là một từ duy nhất chỉ chứa các ký tự chữ cái.

Nếu từ là số lẻ, xuất ra một giá trị trung thực. Nếu từ là chẵn, xuất ra một giá trị falsey.

Chiến thắng

Mã ngắn nhất tính bằng byte thắng.


1
Bạn có thể thêm một ví dụ về một từ mà không có bất kỳ chữ cái lẻ.
Hedi

@Hedi Tôi đã thêm một, nhịp điệu
Beta Decay

7
Ex cuse bạn. Odd Word ™ đã được đăng ký nhãn hiệu bởi JLee. Đây là việc sử dụng trái phép thuật ngữ này. : P
Deusovi

2
Điều này đang cầu xin một bản đệ trình thuần túy
Rohan Jhunjhunwala

2
Là đầu vào được đảm bảo chỉ chứa các ký tự chữ cái?
DJMcMayhem

Câu trả lời:



18

EXCEL, 79 byte:

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

đầu vào:
Chức năng này có thể được đặt ở bất cứ đâu NGOẠI TRỪ A1
Đặt từ của bạn trong câu hỏi vào A1.

Đầu ra: 0 nếu chẵn, 1 nếu lẻ.


13

JavaScript (ES6), 34 41 33 32 byte

Đã lưu 1 byte nhờ Arnauld:

s=>~s.split(/[aeiou]/i).length&1
  • Từ lẻ: trả về 1
  • Ngay cả từ: trả về 0


Giải pháp trước đây:

33 byte nhờ Arnauld:

s=>s.split(/[aeiou]/i).length&1^1
  • Từ lẻ: trả về 1
  • Ngay cả từ: trả về 0

Một cách khác mà không có toán tử bitwise:

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

41 byte:

(s,a=s.match(/[aeiou]/ig))=>a&&a.length%2
  • Từ lẻ: trả về 1
  • Ngay cả các từ có chữ lẻ: trả về 0
  • Ngay cả những từ không có chữ cái lẻ: trả về null

42 byte để trả về 0thay vì null:

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

34 byte, ngắt các từ không có chữ cái lẻ:

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

Đã lưu 2 byte nhờ Shaun H

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

1
Phương pháp này phá vỡ khi từ không có nguyên âm. Điều đó nói rằng: f=không cần thiết và việc gọi exec trên đối tượng regex ngắn hơn. s=>/[aeiou]/ig.exec(s).length%2
Shaun H

Tôi không có kết quả tương tự execvới gcờ.
Hedi

bộ não chết tiệt yeah bỏ qua điều đó, f = vẫn không cần thiết mặc dù
Shaun H

Bạn có thể làm s=>s.split(/[aeiou]/i).length&1^1
Arnauld

1
s=>~s.split(/[aeiou]/i).length&1thực sự ngắn hơn một byte.
Arnauld

8

Brain-Flak 206 196 192 178 + 3 = 181 byte

Hãy thử trực tuyến!

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

Điều này đòi hỏi -ccờ phải chạy trong chế độ ASCII, thêm 3 byte vào chiều dài của chương trình.

Bị đánh cắp

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

Giải trình

Đầu tiên lưu trữ chiều cao ngăn xếp cho các mục đích trong tương lai

([]<...>

Sau đó, trong khi ngăn xếp không trống (giả sử rằng không có ký tự nào bằng 0)

{...}

Trừ chín mươi bảy (và lưu trữ 3 để tối ưu hóa sau này)

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

Nếu nó không bằng 0 (tức là không phải a)

{...}

Trừ 4 (và lưu 4 để tối ưu hóa sau)

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

Nếu nó không bằng 0 (tức là không phải e)

{...}

Trừ 4 (và lưu 4 để tối ưu hóa sau)

({}[({})])

Nếu nó không bằng 0 (tức là không phải i)

{...}

Trừ 6 (và lưu 6 để tối ưu hóa sau)

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

Nếu nó không bằng 0 (tức là không o)

{...}

Trừ 6 (cửa hàng 6 vì chương trình mong đợi một lần sau)

({}[({})])

Nếu nó không bằng 0 (tức là không phải u)

{...}

Di chuyển phần còn lại sang ngăn xếp khác và đặt số 0 vào ngăn xếp hoạt động để thoát khỏi tất cả các if

({}<>)(<>)

Khi tất cả các if đã được thoát, hãy xóa số 0 và số 6

{}{}

Khi tất cả các ký tự đã được xử lý trừ đi chiều cao của phần bù so với chiều cao được lưu trữ ban đầu.

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

Mod bởi hai

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

Tôi nghĩ rằng -cchỉ là 1 byte kể từ khi câu trả lời Perl cũng chỉ thêm 1 byte / cờ.
ThreeFx

1
@ThreeFx Đó là vì perl -pe'code'chỉ dài hơn một byte perl -e'code'.
Dennis

8

C, 42 byte

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

Điều này hoạt động với GCC 4.x trên CPU x86-64. Kết quả có thể thay đổi với các thiết lập khác nhau.

Thử nghiệm nó trên repl.it .

Với chi phí thêm 5 byte, hành vi không xác định có thể tránh được, do đó mã phải hoạt động miễn là int s rộng tối thiểu 32 bit.

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

Làm thế nào nó hoạt động

Modulo 32 , mã ký tự của tất cả các chữ cái lẻ là 1 , 5 , 9 , 1521 . 2130466 là số nguyên 32 bit đã đặt bit tại các vị trí này và bỏ đặt bit ở tất cả các vị trí khác.

Khi f được gọi trên một chuỗi, đầu tiên nó sẽ kiểm tra xem ký tự đầu tiên của chuỗi có phải là byte không (bộ kết thúc chuỗi). Nếu có, *smang lại 0f trả về 0 . Mặt khác, *smang lại mã ký tự của một chữ cái và đối số đúng của logic AND ( &&) được thực thi.

Đối với >>, GCC tạo ra một hướng dẫn thay đổi. Trên CPU x86-64, hướng dẫn tương ứng cho số nguyên 32 bit bỏ qua tất cả trừ 5 bit thấp hơn của đối số bên phải, giúp tránh giảm *smodulo 32 . Sự dịch chuyển bên phải và theo bit sau VÀ với 1 trích xuất bit 2130466 tương ứng với chữ cái, sẽ là 1 khi và chỉ khi chữ cái đó là số lẻ.

Sau đó, chúng tôi tăng con trỏ s (loại bỏ chữ cái đầu tiên một cách hiệu quả), gọi f đệ quy trên chuỗi bị chặt đầu và lấy XOR bitwise của kết quả từ phía trên và kết quả của lệnh gọi đệ quy.


Tuyệt vời chút công việc khôn ngoan!
Keyu Gan

erees Trả về 0 trong Ideone, phải không?
RosLuP

@RosLuP Không, điều đó không chính xác. Nó hoạt động trên máy tính của tôi và trên repl.it mặc dù (có thể vì phiên bản GCC khá khác nhau).
Dennis

Vâng, nó chắc chắn là trình biên dịch. Với clang 3.7, nó cũng hoạt động trên Ideone .
Dennis

7

sed 44 (42 + 1 cho -n) 43

-1 cảm ơn Neil

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

In ocho lẻ và không có gì cho thậm chí


s/[aeiou][^aeiou]*[aeiou]//gicó thể giúp bạn tiết kiệm một byte, nếu tôi đếm đúng.
Neil

@Neil Yep! Tôi muốn sed có thể tìm kiếm không tham lam.
Riley

7

Python, 41 byte

lambda s:sum(map(s.count,"aeiouAEIOU"))%2

6

Python, 42 byte

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

Không có nhiều để giải thích ở đây. Hàm không tên trả về 0 hoặc 1.


6

Brain-Flak , 524, 446 , 422 byte

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

Hãy thử trực tuyến!

Ungolfed, phiên bản dễ đọc hơn:

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

Phiên bản Ungolfed dường như không hoạt động (không thể phù hợp với liên kết TIO trong nhận xét; _;)
Thuật sĩ lúa mì

6
"dễ đọc hơn", Nough nói
Rohan Jhunjhunwala

6

Thạch , 13 12 11 byte

-1 byte nhờ @Luis Mendo (sử dụng để thay thế %2)
-1 byte nhờ @Dennis (sử dụng nén chuỗi)

Œlf“¡ẎṢɱ»LḂ

Tất cả các trường hợp thử nghiệm đều có tại TryItOnline

Làm sao?

Œ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)

Không cạnh tranh, 5 byte (vì tôi vừa thêm chức năng Øc)

fØcLḂ

Các trường hợp thử nghiệm cũng tại TryItOnline

Tương tự như trên, nhưng Øcmang lại các nguyên âm của bảng chữ cái Latinh,'AEIOUaeiou'


1
Tôi nghĩ bạn có thể thay thế %2bằng
Luis Mendo

7
euoimột tiếng kêu của sự sung sướng mê đắm trong những tiết lộ của người Bacch cổ đại , vì vậy bạn có thể sử dụng từ điển và lấy các nguyên âm như “¡ẎṢɱ».
Dennis

@Dennis - LOL tất nhiên!
Jonathan Allan

2
@Dennis Chính xác thì nó hoạt động như thế nào? Có phải chỉ là nén cơ sở để lấy chỉ mục của một từ trong một từ điển khổng lồ? Trường hợp 'a' đến từ đâu?
DJMcMayhem

2
@DJMcMayhem đó là nén 250 cơ sở bằng từ điển (mà tôi tin là vừa được lấy từ máy tính của Dennis) với sự phân tách giữa các từ ngắn (dưới 6 char) và các từ dài. Một số mã để tự động hóa quá trình tạo chuỗi nén được viết bởi Lynn. 6 byte không được sử dụng là các ký tự nhận dạng chuỗi của Jelly “”«»‘’(cũng có các ký tự cho chuỗi hai char, nhưng được sử dụng trong các chuỗi được nén).
Jonathan Allan

6

Haskell, 38 37 byte

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

Cảm ơn Angs cho một byte!


Chân lý cho lẻ, vì vậy bạn phải sử dụng oddthay vì even. Tiết kiệm một byte!
Angs

@Angs thông minh :)
BlackCap

4

Python 3, 53 byte

Điều này có thể được đánh gôn hơn nữa:

lambda n:[x in 'aeiou' for x in n.lower()].count(1)&1

Xóa khoảng trắng giữa in'aeiou'for, và sử dụng sumđể lưu 8 byte: lambda n:sum(x in'aeiou'for x in n.lower())&1(mặc dù như bạn có thể thấy từ bài đăng của DJMcMayhem bằng cách sử dụng tất cả mười nguyên âm cũng ngắn hơn)
Jonathan Allan

1
Cảm ơn vì những lời khuyên! Tôi nhận thấy các khoảng trống thêm một chút sau khi đăng, nhưng thành thật mà nói, @DJMcMayhem và tôi đã có cách tiếp cận giống hệt với anh ấy là phiên bản tốt nhất tôi có thể tưởng tượng cho một giải pháp Python. Tôi không biết về sum()lệnh trước khi chơi golf này nên một lần nữa tôi đã học được điều gì đó! Chúc một ngày tốt lành :)
L. Chỉ đạo

4

Java, 73

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

đã thấy một vài câu trả lời java khác, nếu không sẽ không chia sẻ. Cảm ơn Phaeze đã lưu một byte.


1
Tôi nghĩ bạn có thể tiết kiệm một byte bằng%2>0
JustinM - Tái lập lại

4

C 52 byte

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

chính và kết quả:

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

*/

tôi cố gắng sử dụng int làm con trỏ nhưng nó không biên dịch khi sử dụng inirection * ... giải pháp được in đầu tiên ở đây là sai ...
RosLuP

h(o){return~-o?1^h(1+strpbrk(o,"aeiouAEIOU")):1;}tiết kiệm 3 byte.
Dennis

s; h (o) {s = ~ -o? 1 ^ h (1 + strpbrk (o, "aeiouAEIOU")): 1;} kết quả là trong biến toàn cầu s ...
RosLuP

Thật không may, điều đó không được phép. Các chức năng phải được tái sử dụng và điều này sẽ bị hỏng nếu bạn sử dụng nhiều lần. Ngoài ra, không được phép lưu đầu ra trong một biến, trừ khi bạn lấy vị trí làm đầu vào của người dùng.
Dennis

Tôi nghĩ trong trường hợp này việc tái sử dụng là có thể vì giá trị bắt đầu của s bây giờ không quan trọng ... ok ok bây giờ tôi nghĩ có thể có gì đó không ổn ... Cảm ơn
RosLuP

3

Bình thường, 14 byte

%l@"aeiou"rQ02

Hãy thử trực tuyến!

Giải trình:

  @"aeiou"       Grab only the vowels
          rQ0      From lowercased input
 l                 Get the length of this
%            2     And mod 2 to check for oddness


3

Vim, 32, 31 , 29 tổ hợp phím

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

Vì trình thông dịch V tương thích ngược, bạn có thể dùng thử trực tuyến! ngay chỗ này.

Một Ba byte được lưu nhờ m-chrzan!


1
Bạn có thể làm s/.../githay vì s/\c.../g?
m-chrzan

@ m-chrzan Woah, mẹo tuyệt vời. Cảm ơn!
DJMcMayhem

Ngoài ra, '<C-r>"'-> @".
m-chrzan

1
Tôi phát hiện ra khoảng @"15 phút trước. Mẹo vim tốt nhất tôi có là sử dụng :help foo/tài liệu: P.
m-chrzan

2
Chà, vì chúng ta đang nói về golf, :h foongắn hơn. : 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;}

Ung dung:

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

3

dimwit , 14 byte (không cạnh tranh)

ar[aeiou]}et}T

Tôi nghĩ rằng đây sẽ là một thử thách đơn giản, thú vị để bắt đầu với một ngôn ngữ mới.

Giải trình

  • a - đẩy một mảng mới vào ma trận
  • r[aeiou]} - số lần xuất hiện của tất cả các giá trị khớp với regex "[aeiou]" trong mảng đầu tiên (vì mảng đầu tiên chứa đầu vào), bỏ qua trường hợp và đẩy giá trị đó đến cuối mảng cuối cùng.
  • e - nếu số cuối cùng trong mảng cuối cùng là số chẵn (mà chúng tôi đặt thành số lần xuất hiện), hãy thực hiện các thao tác tiếp theo cho đến khi đóng khung ("}")
  • t - dừng thực thi, xóa ma trận và đặt giá trị đầu tiên là false
  • }- kết thúc ekhối mã
  • T - dừng thực thi, xóa ma trận và đặt giá trị đầu tiên là true

Hãy thử trực tuyến!

Sử dụng trường Nhập liệu để nhập từ.

Tôi sẽ sớm thêm tài liệu ...


2

PowerShell v2 +, 45 42 byte

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

Đưa đầu vào $args[0], gửi nó đi -replaceđể loại bỏ tất cả các ký tự không nguyên âm, lấy kết quả .length%2kiểm tra xem nó có lẻ / chẵn hay không.

Ví dụ

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

2

J, 20 byte

2|+/@e.&'aeiouAEOIU'

Phương pháp tiếp cận thẳng

Giải trình

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

Haha, tôi vừa đăng một câu trả lời J (hiện đã bị xóa) dài hơn 1 byte. Công việc tốt!
Conor O'Brien

Đâu là lệnh "lấy đầu vào"?
RosLuP

@RosLuP Đây là một động từ (hàm) lấy một đối số làm đầu vào. J sử dụng lập trình ngầm nên lệnh được xích lại với nhau và giá trị vượt qua ngầm
dặm

2

Japt, 7 byte

1&Uè"%v

Kiểm tra nó trực tuyến! Đầu ra 1 cho số lẻ, 0 cho số chẵn.

Làm thế nào nó hoạt động

         // 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

2

Octave, 34 byte

@(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

Đây là 6 byte ngắn hơn so với phương pháp truyền thống sử dụng ismember, @(s)mod(sum(ismember(s,'aeiouAEIOU')),2)và hai byte ngắn hơn so với phương pháp regex: @(s)mod(nnz(regexpi(s,'[aeiou]')),2).

Kiểm tra nó ở đây .


2

PHP, 41 byte

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

Điều này tạo ra -1 cho sự thật và 0 cho falsey.


2

Toán học, 44 byte

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

Cung cấp True cho một chuỗi lẻ và Sai cho một chuỗi chẵn.


1
+1 cho bất kỳ người đàn ông hay phụ nữ nào học toán
Bạch tuộc ma thuật Urn


2

C # 64 62 56 50 byte

s=>1>s.Split("aeiouAEIOU".ToCharArray()).Length%2;
  • Chúng tôi đã sử dụng linq, vì vậy Chứa tiết kiệm 2 byte so với IndexOf
  • Sử dụng phương thức quá tải của Count giúp tiết kiệm 6 byte
  • Cảm ơn @Milk đã đề xuất một phương pháp gọn gàng và tiết kiệm thêm 6 byte

Hàm ẩn danh nhận một chuỗi và đếm các chữ cái lẻ sau đó trả về true nếu có số lẻ hoặc sai nếu không có.

Giải pháp mới này phân tách chuỗi trên bất kỳ ký tự nào trong mảng char đã cho. Các cơ chế của điều này lật ý nghĩa của %2kết quả; 0 bây giờ là số lẻ và 1 thậm chí là do đó 1>.

Dùng thử trực tuyến tại đây!


Nó chỉ có 50 byte để sử dụng string.Split()để đếm nguyên âm và bạn không cần LINQ. s=>1>s.Split("aeiouAEIOU".ToCharArray()).Length%2;
sữa

@milk Cảm ơn vì điều đó, giải pháp rất gọn gàng.
JustinM - Phục hồi Monica

1

Võng mạc , 19 byte

Mi`[aeiou]
[13579]$

Hãy thử trực tuyến! (Dòng đầu tiên cho phép bộ kiểm tra được phân tách bằng nguồn cấp.)

Dòng đầu tiên đếm các nguyên âm trong đầu vào. Dòng thứ hai kiểm tra kết quả là số lẻ.


1

MATL , 8 , 7 byte

13Y2mso

Hãy thử trực tuyến!

Giải trình:

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.