কোন স্ট্রিং সংযুক্ত!


42

ইন্ট্রো

দেয়ালে 3 টি নখ রয়েছে। আপনার কাছে স্ট্রিংয়ের একটি টুকরা পাওয়া গেছে যা উভয় প্রান্তের সাথে ছবির ফ্রেমে স্থির করা হয়েছে। ছবিটি ঝুলানোর জন্য, আপনি নখের সাথে স্ট্রিং জড়িয়ে পড়েছেন। তবে ছবিটি ছাড়ার আগে: কীভাবে নখের চারপাশে স্ট্রিংটি গুটিয়ে রাখা হয়েছে তা দেখে আপনি কী ভাবতে পারবেন যে চিত্রটি পড়ছে কিনা?

প্রথম উদাহরণে ছবিটি পড়বে না। দ্বিতীয় উদাহরণে ছবিটি পড়তে চলেছে।

চ্যালেঞ্জ

Nনখের চারপাশে স্ট্রিংয়ের পথ দেওয়া , ছবিটি পড়তে যাচ্ছে কিনা তা নির্ধারণ করুন। একটি ফিরতি truthy মান যদি ছবি পড়ে যাচ্ছে, এবং একটি falsy মান অন্যথায়।

বিস্তারিত

  • আপনি ধরে নিতে পারেন নখ এবং ছবিটি একটি নিয়মিত- N+1কাঠামোতে সাজানো হয়েছে , নীচের অংশে ছবিটি রয়েছে।
  • আপনি ধরে নিতে পারেন যে দড়িতে কোনও গিঁট নেই, অর্থাত্ দড়িটি দুটি প্রান্তের একটি থেকে অবিরতভাবে আবৃত হতে পারে।
  • প্রতিটি পেরেক বর্ণমালার একটি অক্ষর সহ ঘড়ির কাঁটা দিয়ে গণনা করা হয়। আপনি ধরে নিতে পারেন যে সর্বাধিক 26 টি নখ (এজেড) রয়েছে।
  • পেরেকের চারপাশে একটি ঘড়ির কাঁটার মোড়কে ছোট হাতের অক্ষর দিয়ে চিহ্নিত করা হয়, একটি পাল্টা ঘড়ির কাঁটার মোড়কে একটি বড় হাতের অক্ষর দিয়ে চিহ্নিত করা হয়।

উপরের প্রথম উদাহরণটি হিসাবে এনকোড হবে BcA, দ্বিতীয় উদাহরণটি এনকোড হয়েছে CAbBac

প্রবণ পাঠকের জন্য: এই গ্রুপটি মুক্ত গ্রুপের একটি উপাদান - নখের সেট দ্বারা উত্পন্ন - পরিচয় কিনা তা নির্ধারণের সমান । এর অর্থ এটি বারবার সাবস্ট্রিংগুলি বাতিল করতে যথেষ্ট aAবা Aaআপনি একটি নির্দিষ্ট পয়েন্টে পৌঁছা পর্যন্ত যথেষ্ট । যদি স্থির বিন্দু খালি স্ট্রিং হয় তবে এটি নিরপেক্ষ উপাদান, অন্যথায় এটি নয়।

উদাহরণ

Picture will fall:
Aa
CAbBac
aBbA
DAacAaCdCaAcBCBbcaAb
ARrQqRrUuVHhvTtYyDdYyEKRrkeUWwua
AKkQqEeVvBESWwseYQqyXBbxVvPpWwTtKkVHLlWwNBbAanYYyyhWwEJZUuNnzjYyBLQqQqlEGgebeEPLlTtZzpUuevZzSsbXSGgsUuLlHhUQquPpHUuFfhTZzIitGgFAaBRrBbbYXxOoDZTDdtzVvXxUudHhOVvoUuXKkxyBEeLlbFfKkHhfVAaQqHAaJjODdoVvhSsZzMZzmPpXNBbnxBbUuSSsUuDRrdNnUusJDIiUuIidCEGgeMmcLlDPOopdTEeQqCAETtNnYyeGUuPEFfSsWwHheAaBbpgCcOHUuhAaCcoEFBbfeaFHhfcCFFffNncGFfgtjMVUuKAakvKkXxLlTMmtmOFfoUuXSsYZzLXxlyxUuRPZzTtprSsWwRrPLlpGgMmKRrDHhdRCcUurYNnKCckykXJjxWwUSsJjKkLlKkuBbBbOoWwWwIiUuPDdBbCcWHBbCFfcDdYBbLlyVvSsWGgEewCchDdYywAaJjEepPpPpQXxZzFfLGXxglNnZzYDdyqCcKWXxwXxQqXTtxkFfBSSAasTFftZzsXGgxSsLlLlbZzAaCCccXVvYyxTIiOoBbFftCVQqDdBbGgAavQqKkDPpKTCctRrkdcvAaQWOowLOolqVMmvZAaHCBbcPphIiRKkrLlzFMOomDIiXJjIixMmdNnMHhmfNTtIiKkSDdTtsVvHhnAaNSVvTUutNnXxsGIiXxPpPHhUupgNnAaAAOoaaIiHJjhVvLlnYyXxQqSsTtKJjkBbNnVvEYCcFfMHGghBbmNnEeJTtjJjWYywyeNWwDIiZYyzOodnMQqmVvCcQqxVvGNnEeNBbngVvUGgYyBbDdVvIiAAaauPpQKDdEekNnVLlvHhGSDIidPZzpsPCcpgQqKkQqNOonLlIiLlJjqPAaPXxTtppYyCPpHhCIicARBbracXxWwXEVUuUuGgZHhzBSsbvGgFfeVvxLlNKknWwBLlIibWOowNnRSsrSEeKAakOosLZzZRrHhzTtTFfUuNnOKkotXxTtla


Picture will not fall:
A
BcA
ABCD
aBaA
bAaBcbBCBcAaCdCaAcaCAD
ARrQqRrUatuVHhvTYyDdYyEKRrkeUAua
AEEeQqNneHhLlAIiGgaECXxcJjZzeJFfVWwDdKkvYWwyTJjtCXxANIinaXWwxcTWwtUuWwMmTBbVWIiFLlWwZzfwPLlEepvWZzwKkEYEeWXxwySXTtEexRIiNBbnWAaTtQqNnBMSsWwOombwWwPVPpGPpgYyvDdpBbrQqHhUusKRrDAVvadLlWwOZzokGJCXSSssXxxJPpGIigZzjJjLlOoNRrnPpcMZzmjgJjNDEeQqWKkNTtnSswIidCcnYBGgbyJSsjPpIiMmMmMmSNnWVvwZzIQqLXHhxTPptlisOoeTtTtYMmVvPpyKNnMFfmkXxSVvsCGJjXxgXYJPpjWwQIiXxqyDdxFfDdAaRNnJjrctHBbZzhEQqMmeCcRBbrGgAaAaJNnRrYyWwSDdVvsJOojQGgWWwIBbiwRrqJjjWwOoFPMmDdRrQOoqNnRrDPJjpMmdPpGFfVvWUuwgpWCcNnPpwfUXCcZzJjUSsuXxxUuuRGgHhrSQqJjOosMMTtmHhmKkXxDdLlWwjSUuAaMmKYyksZzVvPZzVEeVvvHhZZOozBbzMmZCczYyGgISsiQqpXxMmXxEMmeRrAGgaGgMOGgomZFfDdzSSssBGPpgbTtBbOoRWWwGgLJjlEeGgLDdRrUulNnZzJjJjUKkuXxFfwATtaZzLVvlWwSsMmrBAaELleGBLFflbgHhbIFfiBbPpTWZzwKkKLASsaTJYyjtBbBbWwIiZCcWwzIiZLlUTtuBbYyBbIizTJjtLTtDOOoBbodBbllSsUGgLlAKkauYykUuUNnPpuDFfAaLNVvnVvlHhdMmBAaBbIiVRrGWOoPpwgWXwKkvJjOoTtYCUucVGgYyLlVvFfvRrMmySsDdbtICZzcNnINSOosDQAaXoxRGgKkrqdZznDdXxZzMGgmiJjNnACcMQqmaNnWZzUOuwTVvAJjSsaRrGgSsTtOMmRroVvRrtAVGgvMmaINniDGCcOogRrWwMVvYFfyTtmTtVvOoOIiodRrGgAxaSsGgiJja

3
মনে হচ্ছে স্ট্রিংয়ের পথটি লেখার জন্য কারও হাত মুক্ত করার ক্ষেত্রে ছবিটি যাইহোক পড়ে যাবে। তাহলে এই চ্যালেঞ্জটি সত্যই সহজ হয়ে যায়।
owacoder

@owacoder আপনি কেবলমাত্র যথেষ্ট দ্রুত হতে হবে: ডি
ফ্লাওয়ার

প্রাসঙ্গিক: youtube.com/watch?v=x5h3yTxeCew
flawr

উত্তর:


11

রেটিনা , 21 বাইট

+`(.)(?!\1)(?i)\1

^$

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

ফ্লাওয়ারের সমাধানের মতো এটি বার বার সংলগ্ন বড় হাতের অক্ষর / ছোট হাতের জোড়গুলি মুছে দেয় এবং তারপরে ফলাফলটি খালি কিনা তা যাচাই করে।

যেভাবে কোনও একটি বড় হাতের / ছোট হাতের জুটির সাথে মেলে:

(.)     # Match and capture a letter.
(?!\1)  # Ensure that the next character is not the same, to avoid matching
        # "aa" and "AA".
(?i)    # Turn on case-insensitivity.
\1      # Match the backreference. In .NET, when using case insensitivity,
        # backreferences also get case-insensitive, so this *can* still match
        # iff the cases of the two letters are different.

7

ম্যাটল্যাব, 76 বাইট অক্টেভ, 82 79 77 বাইট

এটি প্রথমবারের মতো আমি দেখতে পেয়েছি যেখানে ম্যাটল্যাব বাস্তবে অক্টাভে (পুরো বাইট দ্বারা) খাটো !

ম্যাটল্যাবে নতুন উত্তর:

c=input('');k='Aa';while k<1e5,k=k+1;c=strrep(c,65+mod(k,64),'');end;~nnz(c)

অষ্টাভে উত্তর:

c=input('');k='Aa';while k++<1e5,c=strrep(c,['',65+mod(k,64)],'');end;~nnz(c)

সংরক্ষিত তিনটি flawr পাঁচটি বাইট ধন্যবাদ। ~nnz(c)তুলনায় খাটো isempty(c), আর 'Aa'দুই বাইট চেয়ে খাটো [0,32]

এটি অক্টাভ-সংস্করণ অনলাইনে চেষ্টা করে দেখুন!


ব্যাখ্যা:

c=input('')ব্যবহারকারীকে ইনপুট জিজ্ঞাসা করে। আমরা k='Aa'একটি অক্ষর অ্যারে হিসাবে সংজ্ঞায়িত ।

while k++<1e5: যখন লুপ যেখানে উভয় উপাদান kপ্রতিটি পুনরাবৃত্তির, বৃদ্ধি হয় Aa, Bb, Ccইত্যাদি। বৃহত্তম উপাদানটি না হওয়া পর্যন্ত লুপটি চলতে থাকবে 1e5, যা বেশিরভাগ স্ট্রিংয়ের জন্য পর্যাপ্ত পরিমাণে বেশি হওয়া উচিত। এটি 9e9বাইট গণনা না বাড়িয়ে বাড়ানো যেতে পারে ।

আমরা strrepমধ্য থেকে শুরু করে পদক্ষেপগুলিতে ফাংশনটি নেব ।

ব্যবহারের mod(k,64)যখন আমরা বর্ণমালা শেষে পৌঁছানোর (যদি আমরা রূপান্তর আমরা নিম্নলিখিত পাবেন kঅক্ষর ফিরে):

ans = Yy
ans = Zz
ans = [{
ans = \|
ans = ]}
ans = ^~
ans = _
ans = `�
ans = aA
ans = bB

আপনি দেখতে পাচ্ছেন, এর মধ্যে কিছু চিহ্ন থাকবে তবে তারপরে এটি আবৃত হবে এবং আবার বর্ণমালা দিয়ে শুরু হবে, তবে এখন প্রথমে ছোট হাতের অক্ষর দিয়ে। এই চেক উভয় খুব অল্প উপায় Aaএবং aA

['',65+mod(k,64)]modসংখ্যাটি অক্ষরে রূপান্তর করে একটি খালি স্ট্রিং সহ -ক্যাল থেকে সংখ্যাসূচক মানগুলি যুক্ত করে ।

strrepস্ট্রিং থেকে উপাদানগুলি সরিয়ে ফেরাতে ব্যবহার করা হয় c। এটি kস্ট্রিংয়ের সমস্ত উপস্থিতি অনুসন্ধান করবে এবং এটি একটি খালি স্ট্রিংয়ের সাথে প্রতিস্থাপন করবে।

1e5পুনরাবৃত্তির পরে আমাদের হয় একটি ফাঁকা স্ট্রিং বা একটি খালি খালি স্ট্রিং থাকবে। cব্যবহারের কোনও উপাদান রয়েছে কিনা তা আমরা পরীক্ষা করি nnz(c)। আমরা ফিরে আসতে not(nnz(c)), এইভাবে 1যদি এটা খালি, এবং 0যদি সেখানে অক্ষর বাকি হয়c


6

মিনকোলাং 0.15 , 30 বাইট

od4&x,N.I1=$6&d3~c-$~48*=,2&xx

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

ব্যাখ্যা

od                            Take character from input and duplicate it
  4&                          If top of stack is truthy, jump 4 spaces
    x                         Dump top of stack
     ,                        NOT top of stack
      N.                      Output as number and stop

    I1=                       1 if stack has 1 element, 0 otherwise
       $6&                    If top of stack is truthy, jump 16 spaces (to the beginning)
          d3~c                Duplicate top two items of stack, in reversed order
              -               Subtract
               $~             Absolute value
                 48*          Push 32
                    =,        0 if top two items are equal, 1 otherwise
                      2&xx    If top of stack is truthy, dump two elements from top

বাইরের লুপের প্রয়োজনীয়তা দূর করতে মিনকোল্যাংয়ের টরওডিয়াল প্রকৃতিটি এখানে লাভারেজযুক্ত। এখানে সাধারণ ধারণাটি হ'ল স্ট্যাকের শীর্ষ দুটি উপাদান 32 টি ইউনিট পৃথক কিনা (অর্থাত তারা বড় হাতের / ছোট হাতের জুটি) এবং যদি সেগুলি হয় তবে উভয়কেই পপ করুন check যেহেতু এটি "রিয়েলটাইমে" সম্পন্ন হয়েছে, তাই বলার জন্য, জোড়গুলির নীড়গুলি সঠিকভাবে পরিচালনা করা হয়।


5

হাস্কেল, 62 বাইট

a%l|b:t<-l,abs(a-b)==32=t|1>0=a:l
f=null.foldr((%).fromEnum)[]

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

ক্রেডিট জন্য flawrabs এবং জন্য Laikoni fromEnumমানচিত্র

সহায়ক ফাংশন %একটি ইতিমধ্যে সরলীকৃত স্ট্রিং নেয় lএবং aফলাফলকে সহজ করার আগে প্রতীকটি প্রেন্ড করে । যদি lবিপরীত অক্ষর দিয়ে শুরু হয় তবে aতারা বাতিল করে। অন্যথায়, aকেবল চাপ দেওয়া হয়। নোট করুন যে এই পর্যায়ে আর সরলীকরণ প্রয়োজন হয় না।

মূল ফাংশন fপ্রতিটি অক্ষরকে এ এর ​​মাধ্যমে পরিপূরণ করে এবং সরল করে তোলে foldr। তারপরে, এটি ফলাফল খালি কিনা তা পরীক্ষা করে।

কি না চেক করতে দুটি অক্ষর বিপরীত মামলা আছে এবং তাই বাতিল করতে হবে দেখুন যদি তাদের ASCII মান 32 দ্বারা পৃথক প্রতিটি উপাদান দ্বারা প্রক্রিয়াকৃত হয় fromEnumপ্রেরণ হচ্ছে আগে %


নিস! এবং ব্যাখ্যার জন্য ধন্যবাদ, আমি প্রতিদিন নতুন জিনিস শিখছি!
flawr

4

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

DvADu‚øDíìvyK}}õQ

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

ব্যাখ্যা

Dv                 # input number of times do:
  A                # push lowercase alphabet
   Du              # push uppercase alphabet
     ‚ø            # zip the alphabets together (['aA', ..., 'zZ'])
       Díì         # prepend a copy with each element reversed ('Aa' ...)
          v        # for each pair in the resulting list
           yK      # remove it from the accumulated string (starts as input)
             }}    # end loops
               õQ  # check result for equality to empty string

4

হাস্কেল , 98 97 85 81 বাইট

এটি কেবল একটি নিখুঁত বাস্তবায়ন যা কোনও পরিবর্তন না হওয়া পর্যন্ত বার বার অ্যাডজেন্ট চিঠিগুলি বাতিল করার চেষ্টা করে এবং তারপরে ফলাফলটি নির্ধারণ করে।

ধন্যবাদ -২২ বাইটের জন্য @নিমি এবং আরও একটি -4 বাইটের জন্য @ xnor!

o=fromEnum
r(a:b:l)|abs(o a-o b)==32=l|1>0=a:r(b:l)
r x=x
f=null.until((==)=<<r)r

এটি অনলাইন চেষ্টা করুন! বা সমস্ত উদাহরণ যাচাই করুন!


f=null.until(\a->r a==a)r.map fromEnumদুটি বাইট সংরক্ষণ করা উচিত।
লাইকনি

আমার মনে হয় (\a->r a==a)হতে পারে ((==)=<<r)
xnor

1
দ্বিতীয় লাইন, আমি মনে করি আপনি পরিবর্তন করতে পারেন =r lথেকে lধারণা করা হচ্ছে এটি শুধুমাত্র রান প্রতি এক প্রতিস্থাপন করতে যথেষ্ট।
xnor

ধন্যবাদ! আমি দ্বিতীয় ইঙ্গিতটি বুঝতে পেরেছি, তবে এর সাথে কী চলছে তা আমার কোনও ধারণা নেই =<<, মনে হচ্ছে ম্যাজিক এক্সডি
flawr

1
@ ফ্লোয়ার এই টিপ দেখুন । =<<ভালো হয় >>=কিন্তু আর্গুমেন্ট আনা হয়। প্রকাশটি প্রায়শই রূপটির মতো হিসাবে আসে যার ((==)=<<r)অর্থ "অন্তর্নিহিত হয় r" to
xnor

3

গণিত, ১০২ বাইট

""==StringDelete[""|##&@@#<>#2&~MapThread~{Join[a=Alphabet[],A=ToUpperCase@a],A~Join~a}]~FixedPoint~#&

ইনপুট হিসাবে হিসাবে বর্ণমালার স্ট্রিং গ্রহণ এবং প্রত্যাবর্তন Trueবা False

বাস্তবায়ন হৃদয় একটি ফাংশন যে ভালো কোন বাতিল করা যুগল মোছা হয়, তৈরি করছে "Pp"বা "gG"একটি স্ট্রিং থেকে। অভিব্যক্তিটি {Join[a=Alphabet[],A=ToUpperCase@a],A~Join~a}অক্ষরের তালিকার একটি অর্ডারযুক্ত জোড় তৈরি করে, প্রথম তালিকাটি {"a","b",...,"Z"}এবং দ্বিতীয়টি {"A","B",...,"z"}। তারপরে #<>#2&~MapThread~একটি তালিকা তৈরি করে যেখানে এই দুটি তালিকার সংশ্লিষ্ট উপাদানগুলি সংযুক্ত করা হয়েছে, অর্থাৎ {"aA","bB",...,"Zz"},। মজাদার এক্সপ্রেশনটি ""|##&@@তখন (আর্গুমেন্ট ক্রমের জাদুতে ##) বিকল্পগুলির একটি তালিকা তৈরি করে "" | "aA" | "bB" | ... | "Zz"; অবশেষে, StringDelete[...]একটি ফাংশন যা স্ট্রিং থেকে সেই বিকল্পগুলির যে কোনও একটি ঘটনাকে মুছে দেয়।

ফলাফলটি পরিবর্তিত না হওয়া অবধি ইনপুট স্ট্রিংয়ে বার বার সেই ফাংশনটি প্রয়োগ করা যথেষ্ট, যা সম্পন্ন হয় ~FixedPoint~#এবং তারপরে ফলাফলটি খালি স্ট্রিংটি কিনা তা পরীক্ষা করে ""==


3

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

f=(s,t=s.replace(/(.)\1+/gi,s=>s.replace(/(.)(?!\1)./,'')))=>s==t?!s:f(t)

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


3

পার্ল, 28 বাইট

1 while s/.(??{$&^' '})//;$_

ব্যাখ্যা:

পার্ল স্ট্যান্ডার্ড নিয়মিত অভিব্যক্তির অভ্যন্তরে গতিশীল উত্পাদিত নিয়মিত এক্সপ্রেশনকে অন্তর্ভুক্ত করার অনুমতি দেয়।

.কিছু মেলে।

এটি (??{হ'ল জেনারেটেড রেজেক্সের শুরু।

$&পরিবর্তনশীল সমগ্র মিলেছে স্ট্রিং এতদূর, যা এই ক্ষেত্রে শুধু যাই হোক না কেন হয় উপস্থিত থাকবে .মিলেছে।

^অপারেটর operands মান উপর নির্ভর করে, হয় সাংখ্যিক XOR বা স্ট্রিং XOR আছে। এই ক্ষেত্রে, এটি স্ট্রিং xor হবে।

এটি কেবল ' 'একটি স্থান যুক্ত একটি স্ট্রিং, যার সুবিধার্থে 32 এর মান ascii (বা ইউনিকোড!) থাকে a বিপরীতভাবে।

এটি })হ'ল জেনারেটেড রেজেক্সের শেষ।

1 while s/whatever// বারবার কোনও প্যাটার্ন অনুসন্ধান করবে এবং এটি খালি স্ট্রিংয়ের সাথে প্রতিস্থাপন করবে।

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

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


প্রযুক্তিগতভাবে, এটি চ্যালেঞ্জটি যা বলে তার বিপরীতে ফিরে আসে (আপনি সত্যবাদী ফিরে আসবেন যখন এটি মিথ্যা এবং বিপরীত হওয়া উচিত)। এটি ঠিক করতে, !ফাইনালের আগে কেবল যুক্ত করুন $_। যদি এটি এভাবে রাখা আপনার সাথে ঠিক থাকে তবে আপনি পতাকাটির s/.(??{$&^' '})//&&redoজন্য +1 বাইট এটিকে পরিবর্তন করে 4 বাইট সংরক্ষণ করতে পারবেন -p। এটি এখন আপনার সাব্রোটিনের মতো কাজ করবে না কারণ এটি { code }আসলে লুপ নয় (এভাবে &&redoকাজ করবে না), তবে -pএটি একটি whileলুপের ভিতরে রাখে ।
গ্যাব্রিয়েল বেনামি

এছাড়াও আপনি প্রতিস্থাপন দ্বারা অন্য বাইট সংরক্ষণ করতে পারবেন ' 'সঙ্গে $"কোডটি কেমন দেখাচ্ছে তা দেখতে এটি একবার দেখুন।
গ্যাব্রিয়েল বেনামি

2

প্রোলোগ (এসডাব্লুআই) , 151 বাইট

f(S):-S="";string_code(I,S,X),string_code(J,S,Y),J is I+1,32is abs(X-Y),B is J+1,sub_string(S,0,I,_,T),sub_string(S,B,_,0,U),string_concat(T,U,V),f(V).

ব্যাকট্র্যাকিংয়ের কারণে দীর্ঘ সময় ধরে মিথ্যা মামলা চালাতে দীর্ঘ সময় নেয়।

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

Ungolfed

f(S):-                       The string S corresponds to a falling picture if:
  S="";                      S is the empty string, or...
  string_code(I,S,X),        X is the character code at some index I
  string_code(J,S,Y),        Y is the character code at some index J
  J is I+1,                  J is I+1
  32 is abs(X-Y),            X and Y differ by 32 (difference between lower/upper case)
  B is J+1,                  ...
  sub_string(S,0,I,_,T),     ...
  sub_string(S,B,_,0,U),     ...
  string_concat(T,U,V),      ...
  f(V).                      The concatenation of the substrings before and after 
                             the letters X and Y corresponds to a falling picture.

1

এমএটিএল , 20 বাইট

t"[]yd|32=fX<tQh(]n~

এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন (এটি কিছুটা সময় নেয়)।

ব্যাখ্যা

t       % Input string implicitly. Duplicate
"       % Do as many times as input size
  []    %   Push empty array
  y     %   Duplicate current string onto the top
  d|    %   Absolute consecutive differences
  32=   %   Convert to true if 32, false otherwise
  fX<   %   Index of first occurrence of true, or empty of all false
  tQ    %   Duplicate, add 1. This gives the next index, or empty
  h     %   Concatenate. Gives the two consecutive indices of letters
        %   to be removed, or empty
  (     %   Assign an empty array to those positions, i.e. delete them
]       % End
n~      % Number of elements, negate



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