তৃতীয় স্ট্রিং


45

দুটি স্ট্রিং দেওয়া হয়েছে, একটি তৃতীয় স্ট্রিং আউটপুট করুন যা দুটি ইনপুটগুলির সাথে উভয়ের সমান নয়, তবে ইনপুটগুলির উভয়ের মতোই দৈর্ঘ্য (অক্ষরে) রয়েছে। কমপক্ষে একটি বৈধ আউটপুট থাকার নিশ্চয়তা রয়েছে।

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

পরীক্ষার কেসগুলি স্ট্রিংগুলি দেখানোর জন্য উদ্ধৃত করা হয়। আউটপুটগুলি অনেকগুলি সম্ভব।

input, input -> output

"test", "test" -> "tttt"
"do", "don't" -> "dnut_"
"ye s", "yes" -> "fals"
"yes", "yes" -> "noo"
"maybe", "mayue" -> "false"
"false", "false" -> "truee"
"false", "true" -> "fatr"
"1", "" -> "0"
"", "t" -> "s"
"", "abcabc" -> "testst"
"abcdefghijklmnopqrstuvwxyz", "aaaaaaaaaaaaaaaaaaaaaaaaaa" -> "zbcdefghijklmnopqrstuvwxya"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" -> "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"

বিধি

  • আপনি নিজের ইনপুট ডোমেনটি চয়ন করতে পারেন, তবে এটি অবশ্যই কমপক্ষে মুদ্রণযোগ্য ASCII এর সমন্বয়ে গঠিত এবং আপনার আউটপুট ডোমেনটি অবশ্যই আপনার ইনপুট ডোমেনের মতো হওয়া উচিত।
  • ইনপুট দৈর্ঘ্য একই বা ভিন্ন হতে পারে।
  • সম্ভাব্যতা 1 সহ আউটপুটটি বৈধ হতে হবে; এটি হ'ল, কোনওটি বৈধ না হওয়া অবধি আপনি এলোমেলো স্ট্রিং উত্পন্ন করতে পারবেন (এবং তাত্ত্বিকভাবে আপনি অসীম লুপ করতে পারেন) তবে আপনি কেবল একটি এলোমেলো স্ট্রিং আউটপুট করতে পারবেন না এবং আশা করছেন এটি কার্যকর হবে। নোট করুন যে এর অর্থ আপনার আউটপুটকে ডিটারমিনিস্টিক হওয়ার দরকার নেই।
  • স্বয়ংক্রিয়ভাবে চলমান নতুন লাইনের অনুমতি দেওয়া হয়েছে তবে তারা আউটপুটটির দৈর্ঘ্যের দিকে গণনা করে না।
  • মেমরি ত্রুটি সম্পর্কিত প্রশ্নের কারণে, এটি অবশ্যই 60 সেকেন্ডের মধ্যে ইনপুট দৈর্ঘ্যের মধ্যে কাজ করতে পারে 6। একটি উত্তর যা সেটির জন্য কাজ করে এবং তাত্ত্বিকভাবে দীর্ঘতর স্ট্রিংয়ের জন্য কাজ করে ঠিক আছে তবে ইনপুট দৈর্ঘ্যের জন্য আধুনিক কম্পিউটারে মেমরি ত্রুটিগুলি 4বৈধ নয়।

এটি , তাই বাইট জেতে সংক্ষিপ্ত উত্তর।


14
এটি এই সাইটের জন্য আকর্ষণীয় নতুন শ্রেণীর প্রশ্নগুলির মতো মনে হচ্ছে যা মানুষের পক্ষে সহজ এবং কম্পিউটারগুলির পক্ষে শক্ত। কারণ কম্পিউটারগুলি বিবিধ চিন্তাভাবনায় ভাল নয়! এটি আমাকে স্পঞ্জবব পর্বের কথা মনে করিয়ে দেয় যেখানে তিনি স্টপলাইটে কী করবেন না সে প্রসঙ্গে একটি রচনা লেখার চেষ্টা করছেন।
জিয়োকাভেল

2
আমি বুঝতে পারি আউটপুট ডোমেন ইনপুট ডোমেনের একটি উপসেট হতে পারে, হ্যাঁ?
লুইস মেন্ডো

2
সুন্দর প্রশ্ন! আমি এটা পছন্দ করি.
isaacg

2
@ কিউলক্লেফ না, এটি উভয় ইনপুট থেকে আলাদা নয়।
janrjan জোহানসেন

3
আমি প্রস্তাব দিচ্ছি "", "1" কে একটি পরীক্ষার কেস হিসাবে যুক্ত করা উচিত, যেহেতু আমি বুঝতে পেরেছিলাম যে আমার উত্তরটি এটির জন্য ব্যর্থ হয়েছে যদিও এটি সমস্ত সরবরাহিত পরীক্ষার
স্লো লরিস

উত্তর:


3

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

øvAyм¬?

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


1
যখন কোনও ইনপুট ফাঁকা স্ট্রিং থাকে তখন কি এটি কাজ করে?
বিটাভেরোস

3
প্রথম স্ট্রিং ফাঁকা থাকলে কাজ করে না। টিআইও
জো কিং

14

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

x!y=[s|s<-(<$max x y)<$>"abc",s/=x,s/=y]!!0

সর্বাধিক (অভিধানের পরে) স্ট্রিং নেয়, যা আমরা জানি যে অকার্যকর; "ক", "বি", এবং "সি" ব্যবহার করে সমস্ত অক্ষর প্রতিস্থাপন করে <$; এবং প্রথমটি প্রদান করে যা কোনও ইনপুট নয়। আমি মনে করি এটি নীল এর কাঠকয়লা উত্তর এবং / অথবা জিওভেল এর সিজেএম উত্তরের অনুরূপ

(আমি কিছুক্ষণের জন্য লুকিয়েছি তবে এই সাইটে এই আমার প্রথমবারের উত্তর! হাই!)


9

ব্রেইনফাক, 97 বাইট

+>+[-,[>>,]<<[<<]>]>>[>]<<<[<]>[<+>>[-<+<+>>][>]<[->+<]<[-]>>>++<[<]>[.>>]>[>>]]>[+[>]+[<]>[.>>]]

অনলাইনে রান কোড করুন (নোট করুন যে "ডায়নামিক মেমরি" নীচে ডানদিকে নির্বাচন করা উচিত)

দারুণ চ্যালেঞ্জ! আমি ভেবেছিলাম এটি তুচ্ছ হবে তবে এটি সত্যিই কঠিন হয়ে পড়েছে। আমি এটিতে ফিরে আসতে থাকি কারণ আমার মনে হয় 20-বা-তাই-বাইট বিএফ সমাধানের কিছু মার্জিত হওয়া উচিত । এই মুহুর্তে, আমি খুব খুশি আমি (আপাতদৃষ্টিতে) এটি বিএফ-তে মোটেও কাজ করতে পেরেছি।

ইনপুট হিসেবে নেওয়া হয় str1+ + \0+ + str2, যেখানে স্ট্রিং পরপর নন-জিরো 1 বাইট অক্ষর।

রিটার্নস (first str1 + first str2) or (first str1 + 1) or 2। এই অ্যালগরিদমটি আমার (ভাঙা) মূলটির উপর ভিত্তি করে উজ্জ্বল @ ØrjanJohansen দ্বারা ধারণা করা হয়েছিল (সম্ভবত)।

মন্তব্য করেছে:

# Let (Kn) be the nth character of K
# Let (^) designate the pointer
# Let F be the first string inputted
# Let S be the second string inputted

+>+[-  # Twice do
,[>>,]  # Input string (characters separated by 1)
<<[<<]>  # Go to left of beginning of string
]>  # End on first character of second string
# If second string is null we will end one too far to the left
>[>]<<<[<]>  # If first string is null we will end there too
# We will use this to do flow control

[  # Only run if both strings were non null

# Tape:    S0 ' F0 ' S1 ' F1 ' S2 ' F2 ' etc
#          ^

<+>>  # Let F0* = F0 (plus) 1  (is 1 as of now; F0 will be added later)
[-<+<+>>] # Let A = S0 (plus) F0
# A may or may not be zero
# F0* may or may not be zero
# Tape:    F0* ' A ' 0  ' S1 ' F1 ' etc
#                ^

[>]<[->+<]  # Let B = A or F0*
# B may or may not be zero
<[-]>>  # Clear F0*
# Tape:     0 ' B ' 0 ' S1 ' F1 ' etc    (if A was zero)
#               ^
# OR        0 ' 0 ' B ' s1 ' F1 ' etc    (if A was nonzero)
#                   ^

# Let C = B or 2
# C will be guaranteed nonzero and unique from S0 and F0
>++<[<]>  # Create C
[.>>]  # Print (using S or F; does not matter)

>[>>]  # End on a zero cells with zero cells all to the right
# This is necessary for the coming functionality
# also as to not loop
]  # End non null block

# Now we consider if one of the strings was null
# Tape:    0 ' E0 ' 0 ' E1 ' etc    (if one string was null)
#          ^
# Tape:    0 '  0 ' 0 '  0 ' etc    (if neither string was null)
#          ^
# Where E is F or S (we don't care)

>[  # Execute only if one string was null

+  # Let A = E0 (plus) 1
# A may or many not be zero
# Tape: 0 ' A ' 0 ' E1 ' etc
#           ^

[>]+[<]>  # Let B = A or 1
# B is guaranteed nonzero and != E0
# Tape: 0 ' B ' ? ' E1 ' 0 ' E2 ' etc
#           ^

[.>>]  # Print

# End on zero cell as not to loop
]  # End null block

আপনার "আসলে" ভুল, যেমন a=2, b=1। বিয়োগের পরিবর্তে আপনাকে যুক্ত করতে হবে।
janর্জন জোহানসেন

আমি মনে করি আপনি শুরুর দিকে Sযোগ >করে এবং পরে [<]>বামদিকের বাইটে করে খালি সমস্যাটি সমাধান করতে পারেন S- যদি এটি ননজারো হয় তবে এটি কিছুই করে না, অন্যথায় এটি স্ট্রিংগুলি স্যুইচ করে।
janর্জন জোহানসেন

@ আরজান জোহেনসেন ওহ আপনি ঠিক বলেছেন, এটি সমান হতে পারে b। কিন্তু না a
কোয়েলক্লেফ

@ Janর্জনজহানসেন আহ, কাজ করে দেখা যাচ্ছে! ভাল চিন্তা!
কোয়েলক্লেফ

@ আরজান জোহেনসেন এই বিষয়টিকে অনুসরণ করুন: যেহেতু এটি != aকেবলমাত্র আমি S/0, S/1, ...তার পরিবর্তে মুদ্রণ করলে S/0, F/1, ...কাজ করা উচিত।
কোয়েলক্লেফ

6

জেলি , 8 বাইট

żḟ@€ØAZḢ

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

কিভাবে?

żḟ@€ØAZḢ - Link: list of characters, a; list of characters, b
ż        - zip a and b
    ØA   - uppercase alphabet
 ḟ@€     - filter discard for €ach (swap @rguments)
      Z  - transpose the result
       Ḣ - head


অ্যালগরিদমটি যাইহোক হওয়া উচিত নয়, আপনি কী করেছেন তা নিশ্চিত নয়।
জোনাথন অ্যালান

আমার মস্তিষ্ক আপাতদৃষ্টিতে কৌশলগুলি খেলায় কোন বিষয় মনে রাখবেন না কারণ আমি কোনও Xবা সেখানে দেখছি না ...
এরিক দ্য আউটগলফার

5

পাইথন 3 , 62 47 57 54 51 বাইট

সম্পাদনা করুন: - @ মিস্টার এক্সকোডারকে 5 বাইট ধন্যবাদ

সম্পাদনা করুন: একটি বাগ ঠিক করতে +10 বাইট

সম্পাদনা: -৩ বাইট @ বিটাভারসকে ধন্যবাদ thanks

সম্পাদনা করুন: -3 বাইট পপ পরিবর্তে সর্বোচ্চ ব্যবহার করে

lambda x,y:max({*"abc"}-{x[:1],y[:1]})+max(x,y)[1:]

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



(x[1:]or y[1:])==> max(x,y)[1:]?
betaveros

বা কেবল (x or y)[1:], আমি মনে করি আপনার কেবল খালি স্ট্রিং এড়ানো উচিত।
বিটাওরোস

ঘটনাক্রমে, এটি একটি লজ্জার বিষয় পাইথন 2-তে অভিনয় {*"abc"}করা {*`id`}
অক্ষর ছিল

এর *len(x or y)পরিবর্তে 1 টি সংরক্ষণ করুন +max(x,y)[1:]
চ্যাস ব্রাউন

4

কাঠকয়লা , 22 বাইট

FEα×ι⌈⟦LθLη⟧¿¬№⟦θη⟧ιPι

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। লম্বা ইনপুটটির দৈর্ঘ্যে পুনরাবৃত্তি করা বড় হাতের অক্ষরের সমস্ত স্ট্রিং উত্পন্ন করে এবং ইনপুটটিতে উপস্থিত না এমন সমস্তকে ওভারপ্রিন্ট করে। অন্য কথায়, আউটপুটটি সাধারণত ZZZ...ইনপুটগুলির মধ্যে একটি YYY...না হয়, যদি না এটি অন্য ইনপুট না হয়, যদি না এটি হয় XXX...


4

গণিত, 111 বাইট

(c=Characters;a=#2;While[f=Alphabet[]~RandomChoice~Length@#;f==#||f==c@a]&[#&@@c@{##}~MaximalBy~Length];""<>f)&


এটি অনলাইনে ব্যবহার করে দেখুন (সিটিআরএল + ভি দিয়ে কোড পেস্ট করুন, শেষে ইনপুট দিন এবং শিফট + এন্টার চাপুন)

ইনপুট

[ "পরীক্ষা", "আমাকে"]

ধন্যবাদ @Not একটি গাছ পরীক্ষণের জন্য এবং golfing -21 বাইট


আমি কীভাবে এটি আবার অনলাইনে পরীক্ষা করব?
স্টিফেন

যোগ করা লিংক + তথ্য
J42161217

@ জেনি_ম্যাথি ব্যর্থ হয়েছে বলে মনে হচ্ছে যদি প্রথম স্ট্রিংটি খালি স্ট্রিং হয়
হল্ভার্ড হুমেল

2
@ হালওয়ার্ডহুমেল স্থির!
J42161217

1
@ নোটট্রি স্থির আপনি যদি মনে করেন যে "ইজি গল্ফিং" হ্রাসের কারণ, তবে আপনাকে এটি করতে স্বাগত জানানো হবে
J42161217

4

পার্ল 6 , 38 30 বাইট

{(1 x.max.comb...*∉$_).tail}

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

অজ্ঞাতনামা কোডব্লক যা দুটি স্ট্রিংয়ের তালিকা হিসাবে ইনপুট নেয় এবং 1111...ইনপুটটিতে নেই এমন 1s এর খালি পরিমাণ দিয়ে প্রথম সংখ্যাটি দেয়।

ব্যাখ্যা:

{                          }   # Anonymous code block
  1 x.max.comb                 # String multiply 1 by the size of the non-empty string
              ...              # Create a sequence increasing by 1
                 *∉$_          # Until the number is not in the input
 (                   ).tail    # And take the last number

ইনক্রিমেন্টর কি বিগিন্ট টাইপ, নাকি যথেষ্ট বড় স্ট্রিংয়ের জন্য এই ওভারফ্লো হবে?
গামা ফাংশন

1
পার্ল @-এ গ্যামা ফাংশন, ডিফল্ট নম্বর প্রকারটি আন্ত, যা অসীম নির্ভুলতা রয়েছে
জো কিং ২

ওহ্ দারুণ. আমি এটি Zsh এর সাথে খাপ খাইয়ে নিতে যাচ্ছিলাম, তবে এটি long longদুর্ভাগ্যজনকভাবে ব্যবহার করে ।
গামা ফাংশন

আপনি কেবল 00 এর প্রথম .., 111 .., 22 .. প্রথম গণনা এবং ক্রমগুলির পরিবর্তে 6 টি বাইট ছাঁটাতে পারবেন: tio.run/…
ফিল এইচ

ফিলফ ভালো ধারণা! সিক্যুয়েন্স আইডিয়াটি রেখে আমি আরও কিছুটা ছোট করেছি
জো কিং ২

4

Zsh , 51 47 37 36 বাইট

বিল্টিন অ্যারে ব্যবহার করে -4 বাইট argv, প্রিফিক্স অপসারণ ব্যবহার করে -10 বাইট এবং RC_EXPAND_PARAM, ব্রেস প্রসারকে ইনলাইন করে -1 বাইট

<<<${${${:-{1..3}${^@#?}}:|argv}[1]}

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

প্রথমত, এটি ছিল একটি দুর্দান্ত চ্যালেঞ্জ, আমি এটিতে নামার আগে আমি প্রচুর আইডিয়া নিয়েছিলাম।

<<<${${${:-{1..3}${^@#?}}:|argv}[1]}
       ${:-             }            # empty fallback
                 ${ @#?}             # remove first character from each parameter
                 ${^@  }             # enable brace expansion (set -P)
           {1..3}${^@#?}             # expand to 1foo 2foo 3foo 1bar 2bar 3bar
     ${                  :|argv}     # Set difference with 'argv'
   ${                           [1]} # The first found element
<<<                                  # print to stdout

@এবং *সনাক্তকারী নয়, সুতরাং ${ :|@}এবং ${ :|*}কাজ করে না, সুতরাং এর ব্যবহার${ :|argv}

এই পদ্ধতিটি 93 ইনপুট পর্যন্ত কাজ করবে এবং একটি 94 তম খুঁজে পাবে যা অনন্য। কেবলমাত্র {1..3}সর্বাধিক সম্ভাব্য ব্যাপ্তির সাথে প্রতিস্থাপন করুন {~..!}

Zsh , 48 47 বাইট *

for ((;$#i<${#${1:-$2}}||$@[(I)$i];i++)):
<<<$i

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

সম্পূর্ণ নতুন পদ্ধতি জোকিংয়ের পার্ল 6 জমা দেওয়ার সৌজন্যে, তবে পূর্ণসংখ্যার আকারের বিধিনিষেধের কারণে বড় স্ট্রিংগুলিতে (n> 20) কাজ করে না। $@[(I)$i]বিপরীত অ্যারে লুকআপকে বৃহত্তম সূচক হিসাবে চিহ্নিত করা হয়, যদি কমান্ড লাইন পরামিতিগুলিতে $ i পাওয়া না যায় তবে এটি শূন্য (গাণিতিক বিস্তারে মিথ্যা) আউটপুট দেবে।


3

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

c"1Y2@X-1)&h

ইনপুট হ'ল প্রিন্টযোগ্য এএসসিআইআই অক্ষরযুক্ত স্ট্রিংগুলির একটি সেল অ্যারে। অক্ষরগুলি থেকে আউটপুট গঠিত হয় 'ABC'এবং তাই ইনপুট ডোমেনের অন্তর্গত।

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

ব্যাখ্যা

আউটপুটটি দীর্ঘতম ইনপুট স্ট্রিংয়ের মতো দীর্ঘ। এর এন- তম অক্ষরটি হ'ল প্রথম অক্ষর 'ABC'যা উভয় ইনপুট স্ট্রিংয়ের এন- তম বর্ণ থেকে আলাদা ।

c        % Concatenate the two strings vertically. If one is shorter it is
         % right-padded with spaces. Gives a 2-row character matrix
"        % For each column
  1Y2    %   Push the string 'ABC...Z' (the upper-case letters)
  @      %   Push current column
  X-     %   Set difference
  1)     %   Get first character
  &h     %   Horizontally concatenate the results so far
         % End (implicit). Display stack (implicit)

3

হাস্কেল, 56 52 48 বাইট

x#y|_:t<-max x y=[c:t|c<-"abc",c:t/=x,c:t/=y]!!0

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

সঙ্গে দুই ইনপুট স্ট্রিং সর্বাধিক প্রথম গৃহস্থালির কাজ প্রতিস্থাপন a, bএবং cএবং প্রথম এক উভয় ইনপুট স্ট্রিং থেকে ভিন্ন বাছাই।


3

রুবি , 53 বাইট

->a,b{([?a,?b,?c].map{|e|e*[a,b].max.size}-[a,b])[0]}

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

মূলত স্ট্রিং উত্পন্ন a...a, b...bএবং c...cএবং প্রথম ইনপুট নেই নির্বাচন করে।


1
যদি প্রথম ইনপুটটি খালি স্ট্রিং হয় তবে ব্যর্থ হয়।
সিলভিও মায়োলো

@ সিলভিওমায়োলো স্থির করেছেন
কনর ও'ব্রায়ান


3

ES6, 54 বাইট

a=>b=>(a[0]+b[0]|0?'a':9-(a[0]^b[0]))+(a||b).substr(1)

পিপিসি তে :) আপনাকে স্বাগতম
শেগি

3

পাইথ, 7 8 বাইট

hC-LG.T

1 বাইট জাকুবে ধন্যবাদ

পরীক্ষা স্যুট

.Tট্রান্সপোজকে Cকাটানোর পরিবর্তে আমরা দৈর্ঘ্যের সংরক্ষণের ট্রান্সপোজ ব্যবহার করি , যাতে এটি ইনপুটগুলিতে কাজ করে যেখানে একটি স্ট্রিং খালি রয়েছে।

একটি টিপল হিসাবে দুটি স্ট্রিং দেওয়া হয়েছে, আমরা সেগুলি স্থানান্তরিত করি ( .T), তারপরে নিম্নতর বর্ণমালা থেকে অক্ষর (গুলি) কে বিয়োগ করে ফলস্বরূপের অক্ষর বা একক অক্ষরকে ম্যাপ করুন -LG, তারপরে অব্যবহৃত অক্ষরের স্ট্রিংগুলির ফলাফলের তালিকাটি স্থানান্তর করুন C, তারপরে ফিরে আসুন প্রথম যেমন স্ট্রিং সঙ্গে h। এটি বর্ণের সাথে প্রথম বর্ণটি নিয়ে গঠিত যা প্রতিটি অবস্থানের জন্য কোনও স্ট্রিংয়ে নয়।


3

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

-27 বাইটস @ নেভেয়ের যাদুবিদ্যার স্পর্শকে ধন্যবাদ! :)

a->b->{b=b.length<1?a:b;if(a.length<1||(b[0]^=2)==a[0])b[0]^=1;return b;}

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

ইনপুট ডোমেন = মুদ্রণযোগ্য ASCII + কোডপয়েন্ট 127।




2

পাইথ , 23 22 বাইট

+.)-.{<G3.{,<Q1<KE1t|K

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

পাইথ , 22 বাইট

+eS-.{<G3.{,<Q1<KE1t|K

পরীক্ষা স্যুট!


ব্যাখ্যা

+.)-.{<G3.{,<Q1<KE1t|K  - Full program.
      <G3               - Yields the String "abc"; Alphabet[:3].
    .{                  - Set formed by the above.
         .{,<Q1<KE1     - Set formed by input_1[:1] and input_2[:1]
   -                    - Set subtraction.
 .)                     - Pop the last element.
+                       - Append.
                   t|K  - input_1[1:] or input_2[1:], relying on the result of Logical OR.

2

পার্ল 5, 82 79 বাইট

sub{$_=$_[0];$_=$_[1]||$_ if/^(xz*)?$/;s/[^z]/z/||s/./y/;$_ eq$_[1]&&s/./x/;$_}

দুটি পৃথক যুক্তি হিসাবে ইনপুট নেয় এবং তৃতীয় স্ট্রিং প্রদান করে returns

সাবরুটাইন প্রথম স্ট্রিংয়ের মতোই একটি স্ট্রিং তৈরি করার চেষ্টা করে তবে প্রথম zঅক্ষরটি একটি দ্বারা প্রতিস্থাপন করে z। তারপরে এটি কোণার কেসগুলির সাথে প্রথম চরিত্রটি প্রতিস্থাপন করে yবা xপ্রয়োজনের সাথে প্রতিস্থাপন করে , যদি এটি জানতে পারে যে ইনপুটগুলির মধ্যে একটি আসলে সকলের ক্রম ছিল z


2

পার্ল 5 , 68 বাইট

sub{$_="a"x length $_[0]||$_[1];$_++while $_ eq$_[0]||$_ eq$_[1];$_}

ব্যাখ্যা:

  • (প্রথম স্ট্রিং যতক্ষণ দীর্ঘ অক্ষরের স্ট্রিং) দিয়ে শুরু হয় বা দ্বিতীয় স্ট্রিং যদি এটি মিথ্যা হয় শূন্য দৈর্ঘ্য
  • এটি প্রথম এবং দ্বিতীয় উভয় থেকে পৃথক হওয়া অবধি বৃদ্ধি করে

"এ" গুলি থেকে শুরু করার অর্থ ছিল পার্ল স্ট্রিংটি দীর্ঘায়িত করার দিকে নির্দেশ করা বাড়ানো; একইরূপে এড়াতে কেবল দুটি স্ট্রিং দিয়ে, এটি উপচে পড়তে পারে না।

এর সাথে সম্পাদন করুন:

perl -e '$s = ' -E 'sub{$_="a"x length $_[0]||$_[1];$_++while $_ eq$_[0]||$_ eq$_[1];$_}' -E ';say $s->("z", "true")'

1
আমি মনে করি প্রথম স্ট্রিং ফাঁকা থাকলে এটি ব্যর্থ হবে।
janর্জন জোহানসেন

একদম ঠিক! সংশোধন করা হয়েছে।
এড।

2

সি (জিসিসি) ,70 65 73 67 61 বাইট

ফাংশনটির প্রদত্ত স্ট্রিংগুলিকে পরিবর্তনযোগ্য হতে হবে (অর্থাত্ অ্যারে বা গতিযুক্ত বরাদ্দ)।

f(a,b)char*a,*b;{a=*a?a:b;*a=*a>70?33:99;*a+=*a==*b;puts(a);}

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

স্ট্যান্ডার্ড ASCII ব্যাপ্তির জন্য কাজ করে

ব্যাখ্যা:

a=*a?a:b           // If a is empty, point to b instead
*a=*a>70?33:99     // Choose a different value for the 1st character of a,
                   // while giving enough space to increment it without 
                   // going back to its previous value
*a+=*a==*b         // Increment the 1st character of a if the arbitrary
                   // chosen value is equal to the value of the 1st 
                   // character of b
puts(a)            // Outputs a

1
আমি নিশ্চিত নই যে এটি নিয়মাবলী সন্তুষ্ট একটি সামঞ্জস্য ইনপুট ডোমেন দেওয়া যেতে পারে। কি হবে যদি *a==255এবং *b==0?
janrjan জোহানসেন

তুমি ঠিক বলছো. স্থির, 8 বাইট ব্যয়ে।
স্কটনেট

সেখানে। আমি এই সমাধানটির জাভা তুলনায় একই বাইকন্ট্ট করতে দিতে পারি না! :-)
স্কটিটিনেট

আপনি যদি প্রিন্টযোগ্য এএসসিআইআইতে সীমাবদ্ধ না রাখেন তবে আপনি একক-সংখ্যা সংখ্যা ব্যবহার করতে পারেন।
janrjan জোহানসেন

যদি আমি ভুল বুঝে না নিই তবে এই চ্যালেঞ্জের বিধিগুলির বিরুদ্ধে হবে।
স্কটনেট

2

আর, 89 67 বাইট

@ জিউজ্পে 9 টি বাইট সংরক্ষণ করেছে, @ ব্যবহারকারী 2390246 13 বাইট সংরক্ষণ করেছে

ক্রিয়া

function(x,y)sub("^.",letters[!letters%in%substr(c(x,y),1,1)][1],x)

ডেমো

# define function
f <- function(x,y)sub("^.",letters[!letters%in%substr(c(x,y),1,1)][1],x)

# test cases
f("test","test")
[1] "aest"
f("do","don't")
[1] "ao"
f("ye s","yes")
[1] "ae s"
f("maybe","mayue")
[1] "aaybe"
f("false","false")
[1] "aalse"
f("false","true")
[1] "aalse"
f("1","")
[1] "a"
f("art","bug")
[1] "crt"

1
আপনি লাগাতে পারেন xএবং yএকই মধ্যে substrকমান্ড। এছাড়াও, কোঁকড়া ধনুর্বন্ধনী এবং returnঅপ্রয়োজনীয়:function(x,y)sub("^.",letters[!letters%in%substr(c(x,y),1,1)][1],x)
ব্যবহারকারী 2390246

1
আপনি returnযেহেতু এটি একটি ফাংশন, এবং ব্রেসগুলি যেহেতু এটি এক লাইনার থেকে মুক্তি পাবে।
জিউসেপ

অঙ্কুর, আমি ঠিক বুঝতে পেরেছি যে f("","1")ফলন "", যা প্রথম ইনপুট সমান ... সম্ভবত এটি অন্য পরীক্ষার কেস হিসাবে যুক্ত করা উচিত
ধীর লরিস

2

জাভা 8, 119 বাইট

ল্যামডা (curried) থেকে Stringল্যামডা থেকে Stringথেকে String। এতে হস্তান্তর Function<String, Function<String, String>>

s->t->{String r=s.length()>t.length()?s:t;while((s+t).contains(r))r=r.substring(1)+(char)(Math.random()*128);return r;}

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

অবহেলিত ল্যাম্বদা

s ->
    t -> {
        String r = s.length() > t.length() ? s : t;
        while ((s + t).contains(r))
            r = r.substring(1) + (char) (Math.random() * 128);
        return r;
    }

প্রয়োজনীয় দ্রষ্টব্য তৃপ্ত না হওয়া অবধি এই দ্রষ্টব্যটি এলোমেলো ASCII অক্ষরকে দীর্ঘ স্ট্রিংয়ে আবর্তিত করে। ইনপুটগুলি ইউটিএফ -8 এবং আউটপুটগুলি ASCII হয়।

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

জাভা 8, 126 বাইট

উপরের মত একই টাইপ।

s->t->{String r;for(byte[]o=(s.length()>t.length()?s:t).getBytes();(s+t).contains(r=new String(o));o[0]%=128)o[0]++;return r;}

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

অবহেলিত ল্যাম্বদা

s ->
    t -> {
        String r;
        for (
            byte[] o = (s.length() > t.length() ? s : t).getBytes();
            (s + t).contains(r = new String(o));
            o[0] %= 128
        )
            o[0]++;
        return r;
    }

প্রয়োজনীয় শর্তগুলি পূরণ না হওয়া পর্যন্ত এটি ASCII এর মধ্যে মোড়ানো দীর্ঘ স্ট্রিংয়ের প্রথম বাইট বৃদ্ধি করে। ইনপুট এবং আউটপুটগুলি ASCII স্ট্রিং।


1
আপনার তৃতীয় পরীক্ষার কেস আউটপুট দেওয়া হয়েছে, এটি তিন দৈর্ঘ্যের একটি স্ট্র্যাপ আউটপুট দেয়: এটি অনলাইনে চেষ্টা করুন!
স্টিফেন

আহ, বাজে। এখন আমি শিখতে যাচ্ছি যে বাইক সংখ্যাটি বিস্ফোরিত না করে এটিকে ঠিক করতে ইউনিকোড কীভাবে কাজ করে ...
জাকব


2

বাশ, 115 .. 77 বাইট

কোনও ইনপুটটিতে কোনও মিল না পাওয়া পর্যন্ত প্রথম (খালি নয়) ইনপুট স্ট্রিংয়ের প্রথম চরটি প্রতিস্থাপন করে 1,2,3 দিয়ে। অনলাইনে চেষ্টা করে দেখুন!

-9, -12, -9, -8 বাইট সমস্ত গ্যামা ফাংশন ধন্যবাদ

x="${1:-$2}"
for s in {1..3}"${x:1}"
{ [[ $s = @($1|$2) ]]||break;}
echo "$s"

( মূল তুলনায় বেশ উন্নতি ... )


1
দুর্দান্ত পদ্ধতি! আপনি ব্যবহার করতে পারেন =এবং ||শেষ লাইনে এবং ${x:-empty_fallback}শুরু ত্রৈমাসিকটি অপসারণ করতে ব্যবহার করতে পারেন। এছাড়াও, আপনার পিছনের জায়গাগুলির ক্ষেত্রে শেষ প্রতিধ্বনিতে উদ্ধৃতিগুলি দরকার। বাধ্যতামূলক টিআইও
গামা ফাংশন


1
আমি কি আপনার সাথে জন্য চলুন মত shift, আমি আমার পদ্ধতি গিঁট পেয়েছিলাম মধ্যে দুটি ভিন্ন পদ্ধতি
গ্যামা ফাংশন



1

পার্ল 5 , 79 + 1 (-পি) = 80 বাইট

$"=<>;chop;$_=length($,=$_)>length$"?$_:$";s/./chr$&+65+$i++/e while/^($"|$,)$/

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


1
যদি দুটি স্ট্রিং আলাদা দৈর্ঘ্যের হয় তবে ব্যর্থ হয়
হলভার্ড হুমেল

আমি লক্ষ্য করেছি। শুধু এটি সংশোধিত।
এক্সকালি

1

জাপট , 17 বাইট

;B¬£ñl g1 çXÃkU v

অক্ষরগুলি A-Zদীর্ঘ ইনপুটটির দৈর্ঘ্যে পুনরাবৃত্তি করে , ইনপুটটির মানগুলি সরিয়ে দেয় এবং অ্যারেতে প্রথম আইটেমটি পান।

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

পুরানো সমাধান, 18 বাইট

;@!UøX}a@ñl g1 çBö

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

বর্ণমালা থেকে একটি এলোমেলো চরিত্র চয়ন করে এবং ইনপুটটিতে উপস্থিত না হওয়া অবধি দীর্ঘতর ইনপুট স্ট্রিংয়ের দৈর্ঘ্যে পুনরাবৃত্তি করে।


জন্য ব্যর্থ ["abcdefghijklmnopqrstuvwxyz", "AAAAAAAAAAAAAAAAAAAAAAAAAA"]। এটি একাধিকবার চালানোর সময়, এটি ফিরে এসেছিল "AAAAAAAAAAAAAAAAAAAAAAAAAA"(ঠিক যেমন আমার পাইথ উত্তরটি দিয়েছিল, যতক্ষণ না আমি এটি স্থির করেছি)
মিঃ এক্সকোডার

এটি ["ডি", ""] এর জন্য ব্যর্থ। আপনি যদি এটি বেশ কয়েকবার চালান তবে আপনি "ডি" পাবেন
J42161217

ধন্যবাদ, আমি বুঝতে পারি এমন কিছু মামলা রয়েছে যা আমি পরীক্ষা করে দেখিনি। কেবলমাত্র +1 বাইটের জন্য স্থির।
জাস্টিন মেরিনার

Ìg1 2 বাইট সংরক্ষণের জায়গায় (2 উপাদান অ্যারে g1= gJ) এর জায়গায় কাজ করা উচিত তবে Ìব্যবহার করার সময় এটিতে একটি বাগ উপস্থিত হতে পারে ;
শেগি

@ শেগি হ্যাঁ, আমি মনে করি যে Jএটি আর পরিবর্তন করার -1কারণে এর কারণ নেই । এজন্য আমি প্রথম স্থানে ব্যবহার করেছি । ;,1
জাস্টিন মেরিনার

1

পাইথন 3, 74 73 বাইট

-1 বাইট ধাপ হেন ধন্যবাদ

def f(x,y,i=1):
 while i*10<10**len(x or y)or str(i)in x+y:i*=2
 print(i)

ননজারো দৈর্ঘ্যের ইনপুটগুলির প্রথমটির মতো একই দৈর্ঘ্যের সাথে সর্বনিম্ন পূর্ণসংখ্যটি মুদ্রণ করে।


সঙ্গে একটি বাইট সংরক্ষণ iএকটি ডিফল্ট ফাংশন প্যারামিটার হিসাবে: def f(x,y,i=1):। আমি মনে করি আপনি এর সাথে অন্য একটি বাইট সংরক্ষণ করতে পারবেন while10*iতবে আমি নিশ্চিত নই।
স্টিফেন

আপনি ( 72 বাইট ) while i*10<10**len(x or y)or str(i)in x+yদিয়ে প্রতিস্থাপন করতে পারেন while i<10**~-len(x or y)or str(i)in x+y
মিস্টার এক্সকোডার

এবং আপনি বাইটগুলি সংরক্ষণ করতে পুনরাবৃত্তিও ব্যবহার করতে পারেন: f=lambda x,y,i=1:(i<10**~-len(x or y)or str(i)in x+y)and f(x,y,i*2)or i(
by১

1

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

a=input()
b=ord(a[0][0])+1
if b==ord(a[1][0]):b+=1
print unichr(b)+a[0][1:-1]

আমার মনে হয় এর কিছুটা সম্ভাবনা আছে। ধারণাটি হ'ল এটি 1 ম স্ট্রিংয়ের 1 ম চরে 1 যুক্ত করে, তারপরে অন্য ইনপুটটির 1 ম চরটি একই কিনা তা পরীক্ষা করে।

** দ্রষ্টব্য, 0 0 দৈর্ঘ্যের স্ট্রিংগুলি পরিচালনা করে না, সুতরাং এটি এই দৈর্ঘ্যে সত্যই কাজ করে না।

এখানে একটি দীর্ঘ দীর্ঘ সমাধান যা 0 দৈর্ঘ্যের সাথে কাজ করে

146 বাইট

a=input()
def c(i):print unichr(ord(a[i][0])+1)+a[i][1:];exit();
for x in range(2):if len(a[x-1])<1:c(x)
if a[0]==a[1]:c(1)
print a[1][0]+a[0][1:]

কোন উন্নতি প্রশংসা করা হবে!


1

সিজেম, 31 30 23 বাইট

q~:A:e>,3,sf*{A\f=:+!}=

প্রিন্টযোগ্য এএসসিআইআইকে ইনপুট হিসাবে গ্রহণ করে। হয় 0, 1 বা 2 এর স্ট্রিং আউটপুট দেয় যা ইনপুট স্ট্রিংগুলির মধ্যে একটির সমান দৈর্ঘ্য। যুক্তিটি হ'ল এর মধ্যে একটিও ইনপুট স্ট্রিংগুলির মধ্যে হতে পারে না!

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

q~:A    e# Store input array as var 'A'
:e>,    e# Take the length of the lexicographically greater string in the input array
3,s     e# Generate "012"
f*      e# Repeat each number as many times as the longer string length, yielding something like ["000","111","222"]
{       e# Search array of number strings for first that returns true for this function
A\f=    e# Map each string in the input array to whether it equals the current number string (0,1)
:+!     e# Add up the array of bits and take the logical not. This returns true iff both array values were not equal to the current number string.
}=      e# Return the first number string that returns true.

অ্যারে উভয় বিট মিথ্যা (এনওআর) হয় তবেই কীভাবে সত্য প্রত্যাবর্তন করতে পারে সে সম্পর্কে কারও কোনও ধারণা রয়েছে? বর্তমানে, আমি করছি :+!
জিওকাভেল

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