এটা কি শক্ত শব্দ?


33

তারা বলে যে hateএটি একটি শক্ত শব্দ। আমি কেন তা জানতে চেয়েছিলাম, তাই শব্দটির দিকে আমার ভাল নজর ছিল।

আমি লক্ষ্য করেছি যে প্রতিটি ব্যঞ্জনবর্ণের স্বর পরে আছে। এটি আমার কাছে এটি বেশ শক্তিশালী দেখায়, তাই আমি স্থির করেছিলাম যে এটিই একটি শব্দকে শক্তিশালী করে তোলে।

আমি আরও শক্তিশালী শব্দগুলি খুঁজতে চাই, সুতরাং এর জন্য আমার একটি প্রোগ্রাম দরকার!

শক্ত শব্দ খুঁজে পাওয়া

স্ট্রং শব্দ শব্দ যেখানে প্রত্যেক ব্যঞ্জনবর্ণ (সেটে চিঠি BCDFGHJKLMNPQRSTVWXZ) একটি স্বরবর্ণ (সেট অক্ষর দ্বারা অনুসরণ করা হয় AEIOUY)। এটাই. অন্য কিছু নয়।

শব্দটি যদি একটি স্বর দিয়ে শুরু হয় তবে আপনাকে প্রথম ব্যঞ্জনবর্ণের আগে কোনও অক্ষর সম্পর্কে চিন্তার দরকার নেই। শব্দের যদি এতে কোনও ব্যঞ্জনবর্ণ না থাকে তবে এটি স্বয়ংক্রিয়ভাবে শক্ত শব্দ!

দৃ strong় শব্দের কয়েকটি উদাহরণ হ'ল agate, hateএবং youagateএখনও একটি শক্ত শব্দ কারণ এটি স্বর দিয়ে শুরু হলেও, প্রতিটি ব্যঞ্জনবর্ণ এখনও স্বর দ্বারা অনুসরণ করা হয় youএটি একটি শক্ত শব্দ কারণ এটির কোনও ব্যঞ্জনা নেই।

শক্তিশালী কথার জন্য দৈর্ঘ্যের কোনও বিধিনিষেধ নেই।

চ্যালেঞ্জ

এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা ইনপুট হিসাবে একটি খালি খালি স্ট্রিং নেয়, এবং যদি এটি একটি শক্ত শব্দ বা মিথ্যা মান না হয় তবে সত্যবাদী মানের আউটপুট দেয়।

ব্যাখ্যা

  • আপনি ছোট হাতের বা বড় হাতের নাগালে ইনপুট নেওয়ার সিদ্ধান্ত নিতে পারেন। আপনার উত্তরে যা নির্দিষ্ট করুন।
  • শব্দগুলিতে কোনও ধরণের বিরামচিহ্ন থাকবে না। সেগুলিতে কেবল সেটে সরল অক্ষর থাকবে ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • সত্যবাদী এবং মিথ্যা মানগুলির পরিবর্তে, সত্য ও মিথ্যাটির জন্য ফিরে আসতে আপনি দুটি স্বতন্ত্র এবং সামঞ্জস্যপূর্ণ মান চয়ন করতে পারেন। আপনি যদি এটি করেন তবে আপনার উত্তরে আপনি যে মানগুলি বেছে নিয়েছেন তা উল্লেখ করুন।
    • আপনি বিকল্পভাবে শক্তিশালী শব্দের জন্য একটি মিথ্যা মান এবং অ-শক্তিশালী শব্দের জন্য সত্যবাদী আউটপুট দিতে পারেন।

পরীক্ষার মামলা

Input      -> Output
hate       -> true
love       -> true
popularize -> true
academy    -> true
you        -> true
mouse      -> true
acorn      -> false
nut        -> false
ah         -> false
strong     -> false
false      -> false
parakeet   -> false

স্কোরিং

যেহেতু এটি , তাই কমপক্ষে বাইটস সহ উত্তরটি জিতবে!



1
খালি শব্দটি কি ""কোনও সম্ভাব্য ইনপুট?
সিলভিও মায়োলো

@ সিলভিওমায়োলো এটি নয়
লিরিকলি

@ লিরিকলি যদি ইনপুটটি "একাডেমি" হয় তবে আউটপুটটি মিথ্যা হওয়া উচিত, আমি যেভাবে সমস্যাটি বুঝি। কারণ 'মি' ব্যঞ্জনবর্ণ।
সত্য-সন্ধান

1
একটি "কলা" ঘৃণা দ্বারা পূর্ণ
jstnthms

উত্তর:


18

জাভাস্ক্রিপ্ট (ES6), 36 28 27 বাইট

ফলাফল উল্টিয়ে 1 বাইট সংরক্ষণ করা হয়েছে, যেমনটি লারসডাব্লুয়ের পরামর্শ অনুসারে

লোয়ারকেসে ইনপুট নেয়। falseশক্তিশালী শব্দ এবং trueঅ-শক্তিশালী শব্দের জন্য প্রত্যাবর্তন করে ।

s=>/[^aeiouy]{2}/.test(s+0)

কিভাবে?

আমরা 0ইনপুট স্ট্রিংয়ের শেষে একটি (স্বরবিহীন) সংযোজন করি এবং পর পর দু'টি স্বর-স্বরযুক্ত অক্ষর সন্ধান করি। এটি আমাদের দুটি ক্ষেত্রেই কভার করতে দেয় যা একটি শব্দকে শক্তিশালী করে না :

  • এটিতে পরপর দুটি ব্যঞ্জনবর্ণ রয়েছে
  • বা এটি ব্যঞ্জনবর্ণের সাথে শেষ হয়

পরীক্ষার মামলা


কেন +0, যদিও? এটি ছাড়া এটি ঠিক কাজ করছে বলে মনে হচ্ছে
ম্যাথিউস অ্যাভেলার

1
@ ম্যাথিউস ওভেলার ব্যতীত +0, এটি ব্যঞ্জনবর্ণের সাথে শেষ হওয়া শব্দের উপর মিথ্যা ইতিবাচক প্রত্যাবর্তন করবে।
আর্নল্ড

আমি দেখতে পাচ্ছি, এটি ব্যতীত এটি টানা ২ টি স্বরবর্ণ খুঁজে পাবে না যদি এটি শব্দের শেষ অক্ষর হয়। স্মার্ট!
ম্যাথিউস অ্যাভেলার

আপনি !(দুটি স্বতন্ত্র মান) বাদ দিতে সক্ষম হবেন
LarsW

@ লার্সডব্লু ধন্যবাদ! আমি এই নিয়মটি লক্ষ্য করি না।
আর্নল্ড

10

পাইথন 2 , 48 বাইট

lambda s:'se, F'in`[v in'aeiouy'for v in s+'b']`

একটি নামহীন ফাংশন একটি (ছোট হাতের) স্ট্রিং গ্রহণ করে s, এবং Falseশক্তিশালী হয় বা Trueনা হলে ফিরে আসে।

এটি অনলাইন চেষ্টা করুন! (ফলাফলটি ওপির সাথে মিলিত করতে উল্টে দেয়)

কিভাবে?

অ-শক্তিশালী শব্দের হয় ব্যঞ্জনবর্ণ থাকে যার পরে ব্যঞ্জনবর্ণ থাকে বা ব্যঞ্জনবর্ণে শেষ হয়।

কোডটি পরের ( s+'b'দুটি) ব্যঞ্জনবর্ণের জন্য প্রয়োজনীয় পরীক্ষাটি তৈরি করতে প্রয়োজনীয় ( ) শেষে একটি ব্যঞ্জনবর্ণ যুক্ত করে ।

এটি আবিষ্কার করে যে পরিবর্তিত শব্দের প্রতিটি অক্ষর তালিকা বোধগম্য সহ একটি স্বর হয় কিনা [v in'aeiouy'for v in s+'b']

এখন এটা দুই জন্য চেক করা প্রয়োজন Falseএকটি সারিতে ফলাফল (একটি অ-শক্তিশালী শব্দ সংকেত), তাই একটি স্ট্রিং উপস্থাপনা (ব্যবহার বুঝিয়ে দেয় `...`এই তালিকার) এবং অস্তিত্বের খুঁজছেন 'se, F'। এই সংক্ষিপ্ত স্ট্রিং পাওয়া যায় 'False, False'কিন্তু মধ্যে একটিও না: 'True, True'; 'False, True'; বা 'True, False'

উদাহরণস্বরূপ বিবেচনা 'nut'তালিকা ধী প্রতিটি অক্ষর মূল্যায়ণ, vএর 'nutb'মধ্যে অস্তিত্বের 'aeiouy'তালিকা ফলনশীল [False, True, False, False], এই তালিকার স্ট্রিং উপস্থাপনা '[False, True, False, False]'যা রয়েছে 'e, F'এখানে: '[False, True, Fals>>e, F<<alse]'অত: পর ফাংশন আয় Trueযে বাদাম অর্থ হল না একটি শক্তিশালী শব্দ।


7

জেলি ,  10  9 বাইট

e€ØY;Ạ11ẇ

অক্ষরগুলির তালিকা নিয়ে ফিরে আসা একটি মোনাডিক লিঙ্ক:

  • 0 যদি শক্ত হয়
  • 1 যদি না

এটি অনলাইন চেষ্টা করুন! অথবা পরীক্ষা-স্যুটটি দেখুন

কিভাবে?

e€ØY;Ạ11ẇ - Link: list of characters, s      e.g. "hate"  or  "you"  or  "not"
  ØY      - consonant yield                   "BCDFGHJKLMNPQRSTVWXZbcdfghjklmnpqrstvwxz"
e€        - exists in? for €ach letter            [1,0,1,0]   [0,0,0]    [1,0,1]
     Ạ    - all truthy? (1 for any valid input)   1           1          1
    ;     - concatenate                           [1,0,1,0,1] [0,0,0,1]  [1,0,1,1]
      11  - literal eleven
        ẇ - sublist exists?                       0           0          1
          -  N.B.: left of ẇ implicitly makes digits so it looks for the sublist [1,1]

দ্রষ্টব্য: ব্যবহারের কারণটি হ'ল ব্যবহারের মাধ্যমে একটি বাইট সংরক্ষণ করা 1(যেহেতু আমরা তখন 11সরাসরি ব্যবহার করতে চাই )।


হুম, ধারাবাহিক মান ...
এরিক আউটগল্ফার

আপনি কি বোঝাতে চেয়েছেন?
জোনাথন অ্যালান

আপনার কোডের হ্যাকি জিনিস ... অন্যথায় আপনি কিছু করতে পারতেন e€ØY;1w11বা কিছু করতে পেরেছিলেন
এরিক দ্য আউটগল্ফার

এগারোটি কেন? স্ট্রিং শব্দের
কোনওভাবেই

@Hiltiz যখন ডায়াডের একটি বাম যুক্তি থাকে যে এটি একটি সংখ্যা হয় তবে তা স্পষ্টভাবে দশকের দশমিক তালিকায় রূপান্তরিত হয়, সুতরাং এগারটি হয় [1,1]
জোনাথন অ্যালান

5

05 এ বি 1 ই , 8 বাইট

কোড

žPS¡¦õÊP

05AB1E এনকোডিং ব্যবহার করে । এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

žPS¡         # Split the string on consonants (bcdfghjklmnpqrstvwxz)
    ¦        # Remove the first element of the array to handle cases when the
               string starts with a consonant
     õÊP     # Check if the empty string is not in the array

উদাহরণ

             # "popularize"
žPS¡         # ['', 'o', 'u', 'a', 'i', 'e']
    ¦        # ['o', 'u', 'a', 'i', 'e']
     õÊ      # [1, 1, 1, 1, 1]
       P     # 1

সম্ভবত আমি কিছু মিস করছি, তবে এটি কি সর্বদা 1 এ ফিরে আসবে বলে মনে হচ্ছে? আমি যে সত্যবাদী মামলার চেষ্টা করেছি এবং মিথ্যা টেস্টকেস উভয়ের জন্য এটি 1 ফেরত দেয়।
- মনিকা পুনরায় ইনস্টল করুন

(ওহ, আমি শুধু খেয়াল বয়স কত এই উত্তর (এবং প্রশ্ন) আমি অনুমান ভাষায় কিছু ইতিমধ্যে পরিবর্তিত হয়েছে।?)
পুনর্বহাল মনিকা - সুন্দর

@ সুন্দর হ্যাঁ দুর্দান্ত ধরা! দেখে মনে হচ্ছে যে আমি কোনও সময়ে স্প্লিট ফাংশনটি ভেঙে ফেলেছি। আমি যত তাড়াতাড়ি সম্ভব এটি ঠিক করব।
আদনান

5

আর , 43 বাইট

function(s)grep("[^aeiouy]{2}",paste(s,""))

এটি অনলাইন চেষ্টা করুন!

আরনাউল্ডের জাভাস্ক্রিপ্ট উত্তরের একটি বন্দর; দুর্বল শব্দ এবং integer(0)শক্তিশালী লোকদের জন্য 1 প্রদান করে ; এটি স্ট্রিংয়ের শেষে একটি (স্পেস) যুক্ত করে।

এটি আসলে ভেক্টরাইজড; স্ট্রিংয়ের ভেক্টর সহ, এটি দুর্বল শব্দের সূচকগুলি (1-ভিত্তিক) প্রদান করে।


এখানে একই মন্তব্য, আপনি কোনও স্থান যুক্ত করার পরিবর্তে রেজিজেসে use ব্যবহার করতে পারবেন না?
চার্লি 21

@ চার্লি আমি নিশ্চিত না আপনি কীভাবে ব্যবহার করতে চান $, তা আরও ব্যাখ্যা করার জন্য যত্নশীল?
জিউসেপে

এই সমাধানটি অনেক পছন্দ করুন। আমি মনে করি যুক্তিটি আরও সুস্পষ্ট (এবং একইভাবে বাইটস) paste0(s,0)তবে এটি কেবল কাতরানো। আমার মনে হয় @ চার্লি এরকম কিছু উল্লেখ করছে: grep("[^aeiouy]([^aeiouy]|$)",s)
ব্যবহারকারী5957401

3

ডায়ালগ এপিএল, 20 বাইট

⎕←∧/2∨/0,⍨⍞∊'aeiouy'

এটি অনলাইন চেষ্টা করুন!


3
আমি মনে করি না আপনার দরকার আছে ⎕←
জাকারি

@ জ্যাচারে আমি এটি রাখি নি, তবে পরে আমাকে বলা হয়েছিল (ডেনিস দ্বারা, আমি বিশ্বাস করি) যে কোনও প্রোগ্রামকে আরইপিএলে চালানো উচিত নয়।
Oberon

তিনি আপনাকে কোন ভাষাটি সম্পর্কে বলেছেন? এটি কি ডায়ালগ এপিএলের জন্য ছিল? আমি জানি যে নীতিটি অবশ্যই পাইথন / জাভাস্ক্রিপ্ট / ইত্যাদির জন্য প্রযোজ্য।
জাকারি


2

জাভা (ওপেনজেডিকে 8) , 93 81 বাইট

s->{int w=0,p=w,l;for(char c:s)w|=p&(p=l="aeiouy".indexOf(c)>>31);return w+p>=0;}

এটি অনলাইন চেষ্টা করুন!


আমি ভীত Booleans উত্তর নয়: s->{int w=0,p=w,l;for(char c:s){l="aeiouy".indexOf(c)>>31;w|=p&l;p=l;}return w+p>=0;}
Jakob

1
বা আপনি এমনকি এটি করতে পারেন:s->{int w=0,p=w,l;for(char c:s)w|=p&(p=l="aeiouy".indexOf(c)>>31);return w+p>=0;}
Jakob

উত্তম উত্তর, তবে এই চ্যালেঞ্জের সাথে একটি সাধারণ রেজেক্স ম্যাচিং আসলে বেশ খানিকটা খাটো। তবুও, আমার কাছ থেকে +1।
কেভিন ক্রুইজসেন

1
@ কেভিন ক্রুজসেন আমার রেজেক্স ভয়ঙ্কর, এটি কাজ করতে পারেনি: ডি। আমি ভান করব যে আমি আসল হতে চেয়েছিলাম
রবার্তো গ্রাহাম

@ রুবার্তো গ্রাহাম " আমি ভান করব যে আমি আসল হতে চেয়েছিলাম " ভাল, অবশ্যই আছে। :) এবং আমি রেগেক্সেও বেশ খারাপ ব্যবহার করতাম, তবে পিপিসিজিতে এখানে আরও কয়েকটি উত্তর দেওয়ার পরে আমি রেজেক্স ব্যবহার করে এর সাথে আরও অভ্যস্ত হয়ে উঠছি। এবং আমি ইতিমধ্যে [a-z&&[^aeiouy]] আমার পূর্ববর্তী উত্তর ব্যবহার করে ব্যঞ্জনবর্ণের সাথে কীভাবে মেলে তা বের করে ফেলেছি । ;)
কেভিন ক্রুইজসেন

2

হুশ , 12 বাইট

ΛΣX_2m€¨γaıu

এটি অনলাইন চেষ্টা করুন!

-4- তে সহায়তার জন্য এইচ.পি.উইজকে ধন্যবাদ । অসামঞ্জস্যপূর্ণ তবে যথাযথভাবে সত্যবাদী বা মিথ্যা মানগুলি প্রদান করে। -1 এর
জন্য লিওকে ধন্যবাদ , এখন ধারাবাহিক সত্যতা / মিথ্যা মান প্রদান করে।


সংক্ষিপ্ত সংক্ষিপ্ত স্ট্রিং । স্ট্রিং কম্প্রেশন এখনও বেশ ধীর গতির, এতে আরও কিছু কাজ করা দরকার
লিও

@ লীও আমি মনে করি এটি দুর্ভাগ্যক্রমে একটি এনপি সমস্যা।
এরিক আউটগল্ফার

2

পাইথ , 18 বাইট

:+Q1."2}M>åYà

সমস্ত পরীক্ষার কেস যাচাই করুন।

জেএস উত্তর থেকে রেজেক্স "ধার করা" । এটি অন্যথায় Falseশক্তিশালী কথার জন্য ফিরে আসেTrue


@ কেভিন ক্রুইজসেন আসলে, পাইথ আইএসও -8859-1 ব্যবহার করে। এজন্য আমি বিশ্বাসী নই।
মিঃ এক্সকোডার

1
@KevinCruijssen Downgoat এর userscript আমাকে বলে এটা 13 বাইট: 13 ISO-8859-1 bytes, 13 chars। আমি মনে করি এটি ঠিক হওয়া উচিত
মিঃ এক্সকোডার

@ কেভিন ক্রুজসেন এখনই ঠিক করা উচিত।
মিঃ এক্সকোডার

@ কেভিন ক্রুইজসেন আমি কোনও পার্থক্য দেখছি না। আপনি আমার উত্তরে কোডটি কী দেখেন এবং আমার পরীক্ষার লিঙ্কটিতে আপনি কোন কোড দেখতে পান?
মিঃ এক্সকোডার


2

ব্র্যাচল্যাগ , 18 11 10 বাইট

,Ḷs₂{¬∈Ẉ}ᵐ

এটি অনলাইন চেষ্টা করুন!

ঝরঝরে এবং সরল (চূড়ান্ত ব্যঞ্জনাময় কেস যেমন "প্যারাকিট" হ্যান্ডেল করতে পারে 2 অতিরিক্ত প্রাথমিক বাইট ব্যতীত)।

শক্তিশালী কথার জন্য মিথ্যা এবং অ-শক্তিশালী শব্দের জন্য সত্য।

,Ḷ               % append a newline (non-vowel) at the end of input, 
                 %   to catch final consonants
     s₂          % the result has some substring of length 2
       {¬∈Ẉ}ᵐ    % where neither of its elements belong to  
                 %   the set of alternate vowels (with "y")

1

পাইথন 2 , 58 বাইট

-30 বাইট বুঝতে পেরে এটি আরনাউল্ডের জেএস উত্তরের মতো সহজ হতে পারে ।

lambda s:re.search('[^aeiouy]([^aeiouy]|$)',s)<1
import re

এটি অনলাইন চেষ্টা করুন!



আপনার কি কিছু ল্যাম্বডাকে কিছু দেওয়ার দরকার নেই? অর্থাত্f=lambda s...
OldBunny2800

@ OldBunny2800 না আপনি যদি আপনার কোডের মধ্যে রেফারেন্স ব্যবহার না করেন (এটি একটি শিরোনাম বা পাদলেখের কোডের সাথে পুনরায় ব্যবহারের জন্য - f=\একটি শিরোনাম সহ এখানে একটি নামবিহীন ফাংশন তৈরি করা গ্রহণযোগ্য )।
জোনাথন অ্যালান

আমি মনে করি আপনি খালি গোষ্ঠী হিসাবে 3 বাইট সংরক্ষণ করার জন্য আপনার প্যাটার্ন স্ট্রিং '[^aeiouy]([^aeiouy]|$)'(24 বাইট) "[^aeiouy]("*2+")|$)"(21 বাইট) দিয়ে প্রতিস্থাপন করতে সক্ষম হবেন (), অনুসন্ধানের আচরণটি ( টিআইও ) পরিবর্তন করবে না ।
জোনাথন ফ্রেচ


1

পার্ল 5, 31 বাইট (30 + 1)

$_=''if/[^aeiouy](?![aeiouy])/

-pকমান্ড লাইন পতাকার জন্য +1 বাইট । শব্দটি যদি একটি শক্ত শব্দ হয় তবে খালি স্ট্রিংটি না থাকলে এটি মুদ্রণ করে।


"দুটি স্বতন্ত্র এবং সামঞ্জস্যপূর্ণ মান"
L3viathan

@ L3viathan খালি স্ট্রিংগুলি মিথ্যা এবং খালি খালি স্ট্রিং সত্যবাদী। এটি বৈধ।
লিরিকলি

@ এল 3 ভিথন পার্লের সত্যতার নিয়মগুলি এ জাতীয় চ্যালেঞ্জের পক্ষে আসলে খুব উপযুক্ত। আমি প্রথমবারের মতো সত্য ঘটনাটি কাজে লাগিয়েছি না।
সিলভিও মায়োলো

নিউলাইন সমাপ্ত শব্দগুলির সাথে, এটি সংক্ষিপ্ত করা যেতে পারে $_=$/if/[^aeiouy]{2}/
nwellnhof

1

জেলি , 11 বাইট

e€ØY;1a2\¬Ȧ

এটি অনলাইন চেষ্টা করুন!

e€ØY;1a2\¬Ȧ  Main link
 €           For each letter
e            Is it an element of
  ØY         The consonants (excluding Yy)?
    ;1       Append 1 (true) (consonant) to make sure last letter isn't consonant
       2\    For all (overlapping) slices of length 2 (the <link><nilad>\ functionality)
      a      Logical AND of the two values; is it a consonant pair?
         ¬   Logical NOT vectorizing; for each (overlapping) pair, is it not a consonant pair?
          Ȧ  Any and all; make sure all pairs are not consonant pairs

হ্যাঁ আমি জানি আমি জোনাথন অ্যালানকে অনেক মারতে পেরেছিলাম তবে আমি আমার পন্থাটি যাইহোক ভাগ করে নিতে চেয়েছিলাম: পি

-4 বাইট জোনাথন অ্যালান এর সামান্য বিট চুরি করে (শেষ বর্ণের প্রান্তের কেসটি পরীক্ষা করার জন্য কোনও ব্যঞ্জনা যুক্ত করার পরিবর্তে, কেবল 1 সংযোজন করুন) - মাইলকে 1
বাইট ধন্যবাদ


আপনি a2\Ȧ2Ƥṡ2Ȧ€
মাইল

@ জোনাথান অ্যালান ফেসপাম আমি ইচ্ছাকৃতভাবে ব্যঞ্জনবর্ণ হিসাবে গণ্য ØCহয়েছে তা নিশ্চিত করার জন্য এটি নিশ্চিত Yyকরেছিলাম কারণ কোনওরকমে আমি পেছনের দিকে মনে রেখেছিলাম। ধন্যবাদ!
হাইপারনিউট্রিনো

1

আওক, 39 বাইট

/([^aeiouy]{2}|[^aeiouy]$)/{print "n"}

nশক্তিশালী শব্দটির জন্য মুদ্রণ , স্ট্র্যাডওয়ার্ডের জন্য কিছুই নয় (বা, কেবল একটি নতুন লাইন)

প্যাকটি অনুসরণ করে এবং লোয়ারকেস ইনপুটটিতে টানা দুটি অ স্বরবর্ণ অনুসন্ধান করা

পরীক্ষামূলক

$ awk -f strongwork.awk
hate
love
popularize
academy
you
mouse
acorn
n
nut
n
ah
n
strong
n
false
n
parakeet
n

1

কোটলিন , 49 বাইট

{Regex(".*[^aeiouy]([^aeiouy].*|$)").matches(it)}

সত্য এবং মিথ্যা অদলবদল হয়

শোভিত

{
    Regex(".*[^aeiouy]([^aeiouy].*|$)").matches(it)
}

পরীক্ষা

var s:(String)->Boolean =
{Regex(".*[^aeiouy]([^aeiouy].*|$)").matches(it)}
data class TestData(val input: String, val output: Boolean)

fun main(args: Array<String>) {
    val items = listOf(
            TestData("hate", true),
            TestData("love", true),
            TestData("popularize", true),
            TestData("academy", true),
            TestData("you", true),
            TestData("mouse", true),
            TestData("acorn", false),
            TestData("nut", false),
            TestData("ah", false),
            TestData("strong", false),
            TestData("false", false),
            TestData("parakeet", false)
    )

    items
            .filter { s(it.input) == it.output }
            .forEach { throw AssertionError(it.toString()) }

    println("Test Passed")
}

TryItOnline

ভিত্তি করে উপর @ Arnauld এর উত্তর


1

রেটিনা , 23 18 বাইট

$
$
1`[^aeiouy]{2}

এটি অনলাইন চেষ্টা করুন! শক্তিশালী জন্য আউটপুট 0, না হলে 1। মিশ্র কেস সমর্থন করতে 1 বাইট যোগ করুন। সম্পাদনা করুন: @ ওওএসকে ধন্যবাদ 5 টি বাইট সংরক্ষণ করা


শেষ পর্যন্ত একটি ব্যঞ্জনবর্ণ যুক্ত করে 18 বাইট
ovs

1

জাভা 8, 53 42 বাইট

s->s.matches(".*[^aeiouy]([^aeiouy].*|$)")

পরিবর্তে @jrtapsell এর কোটলিন জবাব হিসাবে একই রেজেস ব্যবহার করে -11 বাইট ।

এখানে চেষ্টা করুন। ( falseশক্তিশালী; trueযদি না হয়)

ব্যাখ্যা:

s->               // Method with String parameter and boolean return-type
  s.matches(      //  Checks if the String matches the following regex:
    ".*           //   One or more characters
     [^aeiouy]    //   Followed by a consonant
     ([^aeiouy].* //   Followed by another consonant (+ any more characters)
      |$)")       //   Or the end of the String
                  // End of method (implicit / single-line return statement)

সুতরাং এটি মূলত যাচাই করে থাকে যে আমরা দুটি সংলগ্ন ব্যঞ্জনা খুঁজে পাই বা স্ট্রিংটি একটি ব্যঞ্জনবর্ণের সাথে শেষ হয় কিনা।


পুরানো উত্তর ( 53 বাইট ):

s->s.matches("[aeiouy]*([a-z&&[^aeiouy]][aeiouy]+)*")

এখানে চেষ্টা করুন। ( trueশক্তিশালী; falseযদি না হয়)

ইনপুট-স্ট্রিংটি 'শক্তিশালী'-রেজেক্সের সাথে মেলে কিনা তা দেখার জন্য রেজেেক্স ব্যবহার করে। নোট করুন যে String#matchesজাভাতে স্বয়ংক্রিয়ভাবে ^...$স্ট্রিং প্রদত্ত রেজেক্সের সাথে পুরোপুরি মেলে কিনা তা পরীক্ষা করতে যোগ করে adds

ব্যাখ্যা ":

 s->                   // Method with String parameter and boolean return-type
  s.matches(           //  Checks if the String matches the following regex:
    "[aeiouy]*         //   0 or more vowels
    ([a-z&&[^aeiouy]]  //     { A consonant,
     [aeiouy]+)        //       plus one or more vowels }
    *")                //    Repeated 0 or more times
                       // End of method (implicit / single-line return statement)

ম্যাচের পরিবর্তে অনুসন্ধান (অন্যান্য উত্তরগুলির প্রচুর ব্যবহারের মতো) আসলে জাভাতে দীর্ঘতর:
70 বাইট :

s->java.util.regex.Pattern.compile("[^aeiouy]{2}").matcher(s+0).find()

এখানে চেষ্টা করুন।( falseশক্তিশালী; trueযদি না হয়)






0

লুয়া, 41 বাইট

return#(io.read()..0):match"[^aeiouy]+"<2

স্ট্যান্ডার্ড ইনপুট থেকে পড়া

লুয়া (লোডস্ট্রিং'ড), 37 বাইট

return#((...)..0):match"[^aeiouy]+"<2

ফাংশন প্যারামিটারগুলি থেকে পড়া


ইনপুট ছোট হাতের অক্ষর

2 বা ততোধিক দৈর্ঘ্যের স্ট্রিং রয়েছে কিনা তা দেখায় কেবল স্বর (ব্যঞ্জনবর্ণ) নয় বা স্ট্রিংটি যদি স্বরবর্ণের সাথে শেষ হয়

সত্য / মিথ্যা প্রত্যাবর্তন করে


0

সি ++, 195 194 বাইট

-1 বাইট জ্যাকারিকে ধন্যবাদ ý

বড়হাতে, ইনপুট একটি শক্ত শব্দ হলে সত্যটি প্রত্যাবর্তন করুন, অন্যথায় মিথ্যা (C ++ এর অন্তর্ভুক্ত কাস্ট বিধি বিধানের সহজ ইনট রয়েছে, 0 => মিথ্যা, অন্যথায় সত্য)

#include<string>
#define C(p)(v.find(e[p])==size_t(-1))
std::string v="AEIOUY";int s(std::string e){for(int i=0;i<e.size()-1;++i)if(e[i]>64&&e[i]<91&&C(i)&&C(i+1))return 0;return!C(e.size()-1);}

পরীক্ষার কোড:

auto t = {
    "HATE",
    "LOVE",
    "POPULARIZE",
    "ACADEMY",
    "YOU",
    "MOUSE",
    "ACORN",
    "NUT",
    "AH",
    "STRONG",
    "FALSE",
    "PARAKEET"
};

for (auto&a : t) {
    std::cout << (s(a) ? "true" : "false") << '\n';
}

1
আপনি returnএবং এর মধ্যে স্থান সরাতে পারেন !
জাকারি

0

সি, 107 বাইট

i,v,w,r,t;a(char*s){w=0;for(r=1;*s;s++){v=1;for(i=6;v&&i;)v=*s^" aeiouy"[i--];r=w&&v?0:r;w=v;}return r&~v;}

শক্তিশালী শব্দের জন্য 1 এবং দুর্বল শব্দের জন্য 0 প্রদান করে । মূল পদটিতে প্রদত্ত শব্দগুলির সাথে পরীক্ষিত।



0

পিএইচপি, 69 বাইট

preg_match("/([^AEIOUY][^AEIOUY]+|[^AEIOUY]$)/",$_SERVER['argv'][1]);

1 টি প্রত্যাবর্তনের শব্দটি শক্তিশালী নয়।


পিপিসিজিতে আপনাকে স্বাগতম! আমি বিশ্বাস করি আপনি কিছু বাইট কাটাতে স্পেস সরিয়ে ফেলতে পারবেন, বিশেষত /", str-> /",strএবং [1]))) return-> [1])))returnতবে আমি পিএইচপি খুব ভাল জানি না তাই আমি নিশ্চিত হতে পারি না।
স্টিফেন

হ্যাঁ, ভাল ধারণা! এছাড়াও ইনপুট সর্বদা বড়হাতে থাকে তা ধরে নিয়ে বাইটগুলি হ্রাস করা সম্ভব।
মাটিয়াস ভিলানুয়েভা

ওহ, এবং যদি রেজেক্স একটি স্ট্যান্ডার্ড রেজেক্স ইঞ্জিন হয়, আপনি কি পারবেন না [B-Z]?
স্টিফেন

@ স্টেফেনের [B-Z]স্বর অন্তর্ভুক্ত। [^AEIOUY]কাজ করে, যদিও।
LyricLy

আমিও পিএইচপি জানি না, তবে আপনি সম্ভবত একটি ifবিবৃতিতে মোড়কের পরিবর্তে সরাসরি রেগেক্স ম্যাচ থেকে ফলাফলটি ফিরিয়ে আরও বাইটস সংরক্ষণ করতে পারেন ।
LyricLy

0

সিজেম , 57 বাইট

q{"aeiouy"#W=}%_,:B{_A={_A_)\B(<{=!X&:X;}{0:X;;;}?}&}fA;X

এটি অনলাইন চেষ্টা করুন!


ইনপুট পড়ে, ব্যঞ্জনবর্ণের জন্য 1 এস, স্বরবৃত্তের জন্য 0 সেগুলিতে রূপান্তর করে। প্রতিটি ব্যঞ্জনবর্ণের জন্য, এবং পরবর্তী অক্ষরের মান সহ পূর্বনির্ধারিত ভেরিয়েবল এক্স (পূর্বনির্ধারিত 1)। আউটপুট এক্স

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.