ওয়েভির শব্দগুলি সন্ধান করুন!


18

(দ্রষ্টব্য: এটি আমার আগের চ্যালেঞ্জের একটি সহজ স্পিন অফ, ইনফিনিটি শব্দগুলি সন্ধান করুন! এটি আমার অন্যান্য আগের চ্যালেঞ্জের একটি স্পিন অফ যা ঘূর্ণি শব্দগুলি অনুসন্ধান করুন! :))

একটি avyেউয়ের শব্দ সংজ্ঞা :

  1. আপনি যদি বর্ণমালার (এজেড) নেভিগেশন ওয়েভি ওয়ার্ডের সমস্ত অক্ষরের সাথে কার্ভগুলির সাথে সংযোগ স্থাপন করেন তবে নীচের চিত্রের মতো আপনি একটি তরঙ্গের পথ অবিচ্ছিন্নভাবে ডান বা বাম দিকে এবং কখনই পরিবর্তিত দিকের দিকে যাচ্ছেন না।
  2. একটি ওয়েভির ওয়ার্ড হতে পারে:
    • প্রতিটি পর পরের অক্ষরটি পূর্বের বর্ণের ডানদিকে (বর্ণমালায়) থাকে কিনা তা উত্থাপন
    • প্রতিটি ধারাবাহিক অক্ষর আগের বর্ণের বামে (বর্ণমালায়) থাকলে হ্রাস হচ্ছে।
  3. সমস্ত সমতুল্য সংযোগ অবশ্যই ডাউন হতে হবে, সমস্ত বিজোড় সংযোগ অবশ্যই আপ।
  4. আপনি উপরের / ছোট হাতের বিষয়টি উপেক্ষা করতে পারেন বা সমস্তকে আপার কেস বা সমস্তকে ছোট ক্ষেত্রে রূপান্তর করতে পারেন।
  5. ইনপুট শব্দগুলি কেবলমাত্র জেড এর বর্ণমালা সীমার অক্ষর, কোনও স্থান, কোনও বিরামচিহ্ন বা চিহ্ন নয়।
  6. যদি কোনও শব্দটির "SPOON" এর মতো ডাবল অক্ষর থাকে তবে আপনাকে অবশ্যই ডাবলগুলি একটি অক্ষরে ভেঙে ফেলতে হবে: "SPOON"> "SPON" (কারণ আপনি যদি O থেকে O এ যান শূন্য দূরত্ব)।
  7. তরঙ্গায়িত শব্দ অন্তত 3 স্বতন্ত্র অক্ষর থাকতে হবে (পরও ডাবলস ধ্বসে)।

এখানে কিছু উদাহরণ রয়েছে:

এখানে চিত্র বর্ণনা লিখুন

টাস্ক:

একটি সম্পূর্ণ প্রোগ্রাম বা ফাংশন লিখুন যা স্ট্যান্ডার্ড ইনপুট থেকে একটি শব্দ নেবে এবং এটি যদি ওয়েভি ওয়ার্ড হয় বা না হয় তবে আউটপুট আসবে এবং ইতিবাচক ক্ষেত্রে আউটপুট যদি এটি উত্থাপন বা হ্রাস পাচ্ছে । আউটপুট হতে পারে True/False/Null, 2/1/0, 1/Null/0, -1/0/1, NO/WR/WD, ইত্যাদি, কিভাবে আপনি এটি প্রতিনিধিত্ব করার সিদ্ধান্ত নেন।

পরীক্ষার কেস:

WAVY WORDS:
  ADEPT, BEGIN, BILL, BOSS, BOOST, CHIMP,
  KNOW, SPONGE, SPOON, TROLL, WOLF  

ADEPT  > YES > RAISING
BEGIN  > YES > RAISING
BILL   > YES > RAISING
BOSS   > YES > RAISING
BOOST  > YES > RAISING
CHIMP  > YES > RAISING
KNOW   > YES > RAISING
SPONGE > YES > DECREASING
SPOON  > YES > DECREASING
TROLL  > YES > DECREASING
WOLF   > YES > DECREASING

NOT WAVY WORDS:
  WATCH, EARTH, NINON, FOO, BAR, WAVE, SELECTION,
  YES, NO, DEFINITION, WATER, WINE, CODE, AAAHHHH, I, MM, ABCA

নিয়মাবলী:

  • সংক্ষিপ্ততম কোড জিতেছে।

Ptionচ্ছিক কার্য:

একটি ইংরাজী অভিধানে আপনি যতটা ওয়েভি ওয়ার্ড করতে পারেন তার তালিকা হিসাবে এবং এটি দীর্ঘতমও সন্ধান করুন। আপনি রেফারেন্স হিসেবে ইংরেজি শব্দ সম্পূর্ণ তালিকা উদাহরণস্বরূপ নিতে পারেন এখানে


আপনি কীভাবে ছবিগুলি তৈরি করেছেন?
অলিভার নি

@ অলিভার ইলাস্ট্রেটার সহ কারণ আমার কাছে এটি কাজের জন্য রয়েছে তবে জিম্প বা ইনস্কেপ, বা অন্যদের সাথে একই রকম ফলাফল পাওয়া সম্ভব।
মারিও

NOএবং FOOআপনার বিধি দ্বারা বৈধ ইনপুট হয় না।
পূর্কাকুডারী

1
@ পিটু ১৯৯৮ তারা NOT WAVY WORDSবিভাগে আছেন যদিও তা সঠিক ..
কেড

1
@ xnor # 5 আপনি সমস্ত ইনপুট শব্দ বর্ণিত হিসাবে ধরে নিতে পারেন, যাচাই করার দরকার নেই। # 7 এটি একটি তরঙ্গ আকার তৈরি করার জন্য চিঠিপত্রের সর্বনিম্ন সংখ্যা। বাকিদের জন্য আপনি নিজের পছন্দ অনুযায়ী আউটপুট স্থির করেন।
মারিও

উত্তর:


6

05 এবি 1 , 11 9 বাইট (আদনানকে ধন্যবাদ)

Dg2›iÇü‹Ù

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

ওয়েভি কেস:

0 - ওয়েভি হ্রাস

1 - নৌবাহিনী বৃদ্ধি

ওয়েভি কেস নয়:

[0,1] - তরঙ্গায়িত নয়, শুরুতে হ্রাস পাচ্ছে, তবে তারপরে একটি বৃদ্ধি / সাম্যতা রয়েছে যা প্যাটার্নটি ভেঙে দিয়েছে।

[1,0] - avyেউয়ে নয়, শুরুতে বৃদ্ধি পাচ্ছে, তবে তারপরে হ্রাস / সমতা রয়েছে যা প্যাটার্নটি ভেঙে দিয়েছে

ইনপুট স্ট্রিং - দৈর্ঘ্যের কারণে প্রথম স্থানে avyেউ করা সম্ভব নয়।

ব্যাখ্যা:

Dg2›iÇü‹Ù   # Full program

D           # Push 2 copies of input.
 g2›i       # If length is greater than 2. 
     Ç      # Push ASCII values for all characters in the string.
      ü     # Push pairwise array.
       ‹    # Vectorize 1 if negative difference, 0 if positive difference.
        Ù   # Uniquify using right most unique values first.
            # Else just print the string back, letting them know it's not valid input.

1
@ জোনাথন অ্যালান ডাঙ্গিত ... আমি কেবল মন্তব্য এবং পরিবর্তনগুলি দেখেছি ... আমি The input words will contain at least 3 distinct charactersবোঝাতে চেয়েছিলাম যে আমাকে 3 টিরও কম শব্দ হ্যান্ডেল করতে হবে না। পরিবর্তনগুলি নিয়ে কাজ করা, কিছুটা সময় নিতে পারে; এটি আমার প্রথম উত্তর যা আমি 05AB1E এ করতে সক্ষম হয়েছি।
ম্যাজিক অক্টোপাস উরন

1
@ জোনাথন অ্যালান ফিক্সড :)! তবে এখন আপনি আমাকে মারছেন;)।
ম্যাজিক অক্টোপাস উরন

1
খুব সুন্দর! একটি টিপ, :) ü‹এর মতোইü-0‹
আদনান

হেইহে ... ম্যান, আমাকে কেবল অজগর শিখতে হবে এবং 05AB1E প্রসারিত করতে সহায়তা শুরু করতে হবে। এই ভাষা চিত্তাকর্ষক। টিপ জন্য ধন্যবাদ!
ম্যাজিক অক্টোপাস আরন

5

জেলি , 10 বাইট

OIṠḟ0µL’aQ

TryItOnline!বা সমস্ত পরীক্ষার কেস চালান

প্রত্যাবর্তন:
[1]avyেউক্য increasingেউয়ের জন্য বেড়ে যাওয়ার
[-1]জন্য
অন্য কিছু হ্রাস পেয়েছে ( [],[0] , [-1,1], অথবা [1,-1])

(অপ্রয়োজনীয় হিসাবে ঘোষিত: প্রতিটিের জন্য একক মানের জন্য OIṠḟ0µL’aQS(11 বাইট) ফিরে আসবে1 , -1এবং 0যথাক্রমে।)

কিভাবে?

OIṠḟ0µL’aQ - Main link: s
O          - cast to ordinals
 I         - incremental differences
  Ṡ        - sign (-1 for decreasing, 0 for no change, 1 for increasing)
   ḟ0      - filter out zeros
     µ     - monadic chain separation
      L    - length
       ’   - decremented
        a  - and
         Q - unique items

আপনার দু'জনের ক্ষেত্রেই আলাদা আলাদা তিনটি আউটপুট থাকার অনুমতি রয়েছে?
xnor

হ্যাঁ বোঝানোর জন্য আমি "আপনি কীভাবে এটি উপস্থাপন করবেন তা স্থির করে" নিলেন, যতক্ষণ না তারা আলাদা। তবে নিয়ম # 5 সম্পর্কে আপনার প্রশ্ন এটিকে অকার্যকর করতে পারে (এবং সম্ভবত প্রতিটি অন্যান্য এন্ট্রি)।
জোনাথন অ্যালান

প্রয়োজনে এর একটি সমাধান যুক্ত করেছেন।
জোনাথন অ্যালান

আপনি কি কেবল তালিকাটি যোগ করতে পারবেন না?
xnor

ওহ, হ্যাঁ, অবশ্যই _ _ ধন্যবাদ
জোনাথন অ্যালান

3

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

lambda s:[2<len(set(s))<s[::b]==sorted(s)for b in-1,1]

অক্ষরের তালিকা হিসাবে ইনপুট নেয়। আউটপুট:

[False, True] for ascending
[True, False] for descending
[False, False] for neither

সাজানো ইনপুট স্ট্রিংটি এর আসল বা বিপরীতে সমান কিনা তা পরীক্ষা করে। 1 এবং -1 এর ধাপের আকারগুলি দিয়ে টুকরো টুকরো করে তা করে। একই সাথে, আমরা শব্দটি কমপক্ষে 2 স্বতন্ত্র বর্ণ আছে কিনা তা পরীক্ষা করে দেখি।

যদি "ত্রুটি সহ প্রস্থান" কোনও ক্ষেত্রেই আউটপুট ব্যবহার করা যায়, তবে আমরা 51 বাইটে যেতে পারি:

lambda s:[s,s[::-(len(set(s))>2)]].index(sorted(s))

খুব নিশ্চিত যে আপনি অক্ষরগুলির একটি তালিকা নিতে পারেন যেহেতু এটি স্ট্রিং হিসাবে নির্দিষ্ট করা হয়নি: meta.codegolf.stackexchange.com/a/2216/8478
জোনাথন অ্যালান

3

পাইথন 3, 77 75 বাইট

lambda x:(len(set(x))>2)*(list(x)==sorted(x)or(list(x)==sorted(x)[::-1])*2)

ধরে নিই সমস্ত অক্ষর একই ক্ষেত্রে।

রিটার্নস:

  • 0 avyেউ না থাকলে
  • 1 ফরোয়ার্ড avyেউ
  • 2 পেছনের দিকে avyেউ

অপ্রয়োজনীয় স্থানগুলি সরানো হয়েছে ধন্যবাদ EE টি প্রডাকশনগুলির জন্য


2
পিপিসিজিতে স্বাগতম, এবং প্রথম প্রথম উত্তর! তবে আপনাকে এও নিশ্চিত করতে হবে যে স্ট্রিংয়ে কমপক্ষে তিনটি স্বতন্ত্র অক্ষর রয়েছে; যদি তা না হয় তবে তা কোনও avyেউয়ের শব্দ নয় what
ইটিএইচ প্রডাকশনগুলি

আহ ঠিক. একটি avyেউয়ের শব্দ শব্দের সংজ্ঞা ঘনিষ্ঠভাবে দেখা উচিত ছিল। সংশোধন করা হয়েছে।
সি স্মিথ

নিস! আমি পাইথন বিশেষজ্ঞ নই, তবে আমি মনে করি আপনি উভয় পাশের স্থান সরিয়ে ফেলতে পারেন or
ইটিএইচ প্রডাকশনগুলি

হ্যাঁ, আপনি ঠিক বলেছেন। প্রথম বন্ধনী দিয়ে অভিব্যক্তি ঘিরে পরে সেগুলি সরাতে ভুলে গেছেন। ধরার জন্য ধন্যবাদ!
সি স্মিথ

3

আর, 96 95 বাইট

function(x,d=diff(rle(utf8ToInt(x))$v))if(any(d>0)&any(d<0)|sum(1|d)<2)3 else`if`(all(d<1),2,1)

রিটার্নস:

  • 1 avyেউয়ের ও উত্থাপন জন্য
  • 2 avyেউখেলা এবং হ্রাস জন্য
  • 3 নন-ওয়েভির জন্য

ব্যাখ্যা

  • d=diff(rle(utf8ToInt(x))$v): dস্ট্রিংটিকে প্রথমে তার ASCIIমানগুলিতে রূপান্তর করে একটি ভেরিয়েবল উত্পন্ন করে utf8ToIntযা সহজেই কোনও ভেক্টরকে ফেরত দেয়। পরবর্তী সময়ে ব্যবহার করে রান দৈর্ঘ্যের এনকোডিং সম্পাদন করুন rlerle(...)$vঅনুক্রমের পুনরাবৃত্তি না করা মানগুলি (যেমন সমস্ত রানকে ভেঙে ফেলা) প্রদান করে। অবশেষে পার্থক্য নিতে।
  • if(any(d>0)&any(d<0)|sum(1|d)<2)3: যদি অন্তত একটি পার্থক্য ইতিবাচক হয় এবং কমপক্ষে একটি নেতিবাচক হয়, বা পার্থক্য অনুক্রমের 2উপাদানগুলির চেয়ে কম থাকে (মূল শব্দের সাথে 3 টির চেয়ে কম অক্ষর থাকে), শব্দটি অ-avyেউয়ের মতো এবং ফিরে আসে3
  • else``if``(all(d<1),2,1): অন্যথায় যদি সমস্ত পার্থক্য নেতিবাচক হয় তবে 2avyেউয়ের জন্য এবং কমতে ফিরুন, অন্যথায় 1avyেউয়ের জন্য এবং উত্থাপনের জন্য ফিরে যান ।

সমস্ত পরীক্ষার কেস আর-ফিডালে পরীক্ষা করে দেখুন (নোট করুন যে এটির নামকরণ এটি পরীক্ষার ক্ষেত্রে ভেক্টরাইজড হতে পারে)।


3

জাভাস্ক্রিপ্ট (ES6), 84 81 বাইট

s=>(new Set(t=[...s]).size>2)*(!t.some((c,i)=>c>s[i+1])-!t.some((c,i)=>c<s[i+1]))

ধরে নিই ইনপুট সব একই ক্ষেত্রে। রিটার্নস 1, তরঙ্গায়িত সংগ্রহের উদ্দেশ্যে তিনি -1তরঙ্গায়িত কমছে জন্য, 0বা -0জন্য তরঙ্গায়িত না (উভয় falsy হয়)। সম্পাদনা: @ রবার্টহিকম্যানকে ধন্যবাদ 3 টি বাইট সংরক্ষণ করা হয়েছে।


আমি আরও নতুন বৈশিষ্ট্যগুলির বিশেষজ্ঞ নই, তবে আপনি কি মুছে ফেলতে পারবেন new?
সাইয়েস

@ কোয়েস বিরক্তিকরভাবে নতুন বৈশিষ্ট্যগুলির জন্য আপনাকে ব্যবহার করা দরকার new
নীল

@ নীল, আমি বিশ্বাস করি, আপনি সেট () ফাংশনের অভ্যন্তরে অন্য পরিবর্তনশীল আরম্ভ করে t=[...s]এবং আপনার যে দুটি দাগ আছে [[গুলি] এর পরিবর্তে টি ব্যবহার করে আপনি একটি বাইট সংরক্ষণ করতে পারেন।
রবার্ট হিকম্যান

3

জাভাস্ক্রিপ্ট (ES6), 84 80 78 বাইট

i=>new Set(s=[...i]).size>2?[i,s.reverse().join``].indexOf(s.sort().join``):-1

যেখানে avyেউয়ের সংখ্যা বৃদ্ধি 0, হ্রাস হ্রাস 1, এবং -1 avyেউয়ের নয়।

আমাকে 2 বাইট বাঁচাতে সাহায্য করার জন্য @ নীলকে ধন্যবাদ জানাই


1
new Set(s=[...i])আপনাকে 2 বাইট বাঁচায় (এটা iterating করে কাজ করে i, একটি অ্যারের সেটিকে বাঁক অ্যারের iterating, এবং একটি সেট সংবর্ত পরিণত যে কিন্তু আপনি আর যে সাজানোর যখন তুমি golfing সম্পর্কে চিন্তা করবেন না।।)
নিল


2

পাইথন 2, 53 52 50 বাইট

উদ্ধৃতি যেমন ইনপুট আবদ্ধ আশা করে "watch"

নামবিহীন ল্যাম্বদা হিসাবে:

lambda s:(sum(map(cmp,s[1:],s))+1)/min(len(s)-1,3)

প্রতিটি বর্ণের মধ্যে পার্থক্যের লক্ষণ এবং পূর্ণসংখ্যার দ্বারা ভাগ করে len-1। যদি সবগুলি 1(বৃদ্ধি) হত তবে len-1এটি হ'ল এবং মিশ্রিত হওয়ার জন্য 1একই রকম প্রদর্শিত হয় ,-11-1 সমান হয় যোগফলটি len-1এটির চেয়ে কম এটি প্রদর্শিত হয়0

-1 বাইট পরিবর্তন cmp,s[1:],s[:-1])করতেcmp,s[1:],s)+1


ফিরে আসবে 1জন্য"NO"
জনাথন অ্যালান


হ্যাঁ, তবে 3 টিরও কম অক্ষরের যেকোনও শব্দের (কোনও সদৃশ অক্ষর অপসারণের পরে) avyেউ না হিসাবে সংজ্ঞায়িত করা হয়েছিল ("NO" wেউয়ের পরীক্ষার ক্ষেত্রে নয়)।
জোনাথন অ্যালান


2

রুবি, 54 বাইট

->w{c=w.chars.uniq;c==(s=c.sort)?2:(c==s.reverse)?1:0}

0শব্দটি avyেউ না 1থাকলে, পিছনের দিকের avyেউয়ে এবং 2যদি ফরোয়ার্ড avy েউয়ে থাকে তবে ফেরত দেয় ।


2

গ্রোভি - 56 বাইট

{D = এটা [0]; গ = [0] * 3; it.each {A-> গ [(ক <=> ঘ)] = 1; D = একটি}; গ [1 ..- 1]}

Avyেউয়ের [1,0]উত্থানের জন্য ফলাফল , হ্রাসমান avyেউয়ের জন্য [0,1], [0,0]একক অক্ষর ইনপুট বা [1,1]নন-ওয়েভির জন্য।

দ্রষ্টব্য: ধরে নেওয়া হয় ইনপুট হয় একটি স্ট্রিং বা একটি চর [] এবং সমস্ত অক্ষর একই ক্ষেত্রে।


2

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

for(;($t=$argv[1])[++$i];)$s+=$r[]=$t[$i-1]<=>$t[$i];echo(max($r)-min($r)<2)*(0<=>$s)*(1<$s*$s);

বা 98 বাইট

$s=str_split($t=$argv[1]);sort($s);echo(-($t==strrev($j=join($s)))|$t==$j)*!!count_chars($t,3)[2];

0 তরঙ্গায়িত নয় 1 উত্থাপন -1 হ্রাস


-পরিবর্তে 2*(হ্রাসের জন্য -1: -1 বাইট)। *(!!...)কোন বন্ধনী প্রয়োজন। (-2)
তিতাস

$s*$s>1abs($s)>1(-2) এর পরিবর্তে
টাইটাস

@ টিটাস সম্পন্ন হয়েছে আপনাকে ধন্যবাদ
জার্গ হালসারম্যান

2

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

$n=$m=$l=str_split($argv[1]);sort($n);rsort($m);echo(($n==$l)-($m==$l))*(count(array_unique($l))>2);

রিটার্নস:

  • -1 avyেউয়ের জন্য, হ্রাস।
  • 0 avyেউয়ের জন্য না।
  • 1 avyেউয়ের জন্য, উত্থাপন।

!!array_unique($s)[2]পরিবর্তেcount(array_unique($l))>2
জার্গ হালসারম্যান

আসলে, এর সাথে সমস্যাটি হ'ল অ্যারে_উনিকগুলি কীগুলি অগ্রাহ্য করবে। অ্যারে_উনিক ব্যবহার করার সময় এএএবিসি এর মতো একটি ইনপুট মিথ্যাভাবে আউটপুট দেয় 0।
চকোচোস

1

সি, 164 বাইট

main(){char s[99];scanf("%s",s);char *c=&s;int p=*c;while(*c^0){if(p>*c){if(c-&s[0]>1)return 0;while(*c^0){if(p<*c)return 0;p=*c;c++;}return 2;}p=*c;c++;}return 1;}

WWY না হলে 0, Wwy এবং 1 উত্থাপন যদি কমছে 2 প্রদান করে।


1

র‌্যাকেট 321 বাইট

(let*((ld(λ(sl)(for/list((i(sub1(length sl))))(-(list-ref sl(add1 i))(list-ref sl i)))))(l(ld(remove-duplicates(map
(λ(x)(char->integer x))(string->list s)))))(am andmap)(N"Not WAVY")(d displayln))(cond[(<(length l)2)(d N)][(am(λ(x)(>= x 0))l)
(d"YES; RAISING")][(am(λ(x)(<= x 0))l)(d"YES; DECREASING")][else(d N)])))

Ungolfed:

(define (f s)
  (let*  ((ld (lambda(sl)          ; sub-fn to get differences in list elements
                (for/list ((i (sub1(length sl))))
                  (- (list-ref sl (add1 i))
                     (list-ref sl i) ) )))
          (l (ld
              (remove-duplicates
               (map
                (lambda(x)
                  (char->integer x))
                (string->list s)))))
          (am andmap)
          (N "Not WAVY")
          (d displayln))
    (cond
      [(< (length l) 2)(d N)]
      [(am (lambda(x) (>= x 0)) l) (d "YES; RAISING")]
      [(am (lambda(x) (<= x 0)) l) (d "YES; DECREASING")]
      [else (d N)]
      )))

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

(f "ADEPT"); > YES > RAISING
(f "BEGIN"); > YES > RAISING
(f "BILL"); > YES > RAISING
(f "BOSS"); > YES > RAISING
(f "BOOST"); > YES > RAISING
(f "CHIMP"); > YES > RAISING
(f "KNOW"); > YES > RAISING
(f "SPONGE"); > YES > DECREASING
(f "SPOON"); > YES > DECREASING
(f "TROLL"); > YES > DECREASING
(f "WOLF"); > YES > DECREASING

(f "WATCH")
(f "EARTH")
(f "NINON")
(f "FOO")
(f "BAR")
(f "WAVE")
(f "SELECTION")

আউটপুট:

YES; RAISING
YES; RAISING
YES; RAISING
YES; RAISING
YES; RAISING
YES; RAISING
YES; RAISING
YES; DECREASING
YES; DECREASING
YES; DECREASING
YES; DECREASING
Not WAVY
Not WAVY
Not WAVY
Not WAVY
Not WAVY
Not WAVY
Not WAVY

1

জাভা 7, 254 240 বাইট

import java.util.*;int c(String s){char[]a=s.toCharArray(),x=a.clone();Arrays.sort(x);return s.replaceAll("(.)\\1{1,}","$1").length()<3?0:Arrays.equals(a,x)|Arrays.equals(x,(new StringBuffer(s).reverse()+"").toCharArray())?a[0]>a[1]?1:2:0;}

0ইনপুট স্ট্রিং avyেউ না থাকলে আউটপুট , 1যদি এটি উত্থিত তরঙ্গ, এবং2 যদি এটি একটি ক্রমহ্রাসমান তরঙ্গ হয়।

অবরুদ্ধ এবং পরীক্ষার কোড:

এখানে চেষ্টা করুন।

import java.util.*;
class M{
  static int c(String s){
    char[] a = s.toCharArray(),
           x = a.clone();
    Arrays.sort(x);
    return s.replaceAll("(.)\\1{1,}", "$1").length() < 3
            ? 0
            : Arrays.equals(a, x) | Arrays.equals(x, (new StringBuffer(s).reverse()+"").toCharArray())
               ? a[0] > a[1]
                  ? 1
                  : 2
               : 0;
  }

  public static void main(String[] a){
    System.out.print(c("ADEPT") + ", ");
    System.out.print(c("BEGIN") + ", ");
    System.out.print(c("BILL") + ", ");
    System.out.print(c("BOSS") + ", ");
    System.out.print(c("BOOST") + ", ");
    System.out.print(c("CHIMP") + ", ");
    System.out.println(c("KNOW"));

    System.out.print(c("SPONGE") + ", ");
    System.out.print(c("SPOON") + ", ");
    System.out.print(c("TROLL") + ", ");
    System.out.println(c("WOLF"));

    System.out.print(c("WATCH") + ", ");
    System.out.print(c("EARTH") + ", ");
    System.out.print(c("NINON") + ", ");
    System.out.print(c("FOO") + ", ");
    System.out.print(c("BAR") + ", ");
    System.out.print(c("WAVE") + ", ");
    System.out.print(c("SELECTION") + ", ");
    System.out.print(c("YES") + ", ");
    System.out.print(c("NO") + ", ");
    System.out.print(c("DEFINITION") + ", ");
    System.out.print(c("WATER") + ", ");
    System.out.print(c("WINE") + ", ");
    System.out.print(c("CODE") + ", ");
    System.out.print(c("AAAHHHH") + ", ");
    System.out.print(c("I") + ", ");
    System.out.print(c("MM") + ", ");
    System.out.println(c("ABCA"));
  }
}

আউটপুট:

2, 2, 2, 2, 2, 2, 2
1, 1, 1, 1
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

int c(char[]s){int t=s[0],f=s.length,a=1,b=1,i;for(i=1;i<f;){if(s[i]-s[i-1]>=0)++a;if(s[i]-s[i++-1]<1)++b;}return a==f?1:b==f?-1:0;}(132 বাইট)
31k '12:

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