ভারসাম্যপূর্ণ প্রতিবেশী স্থানটি সন্ধান করুন


10

আপনার কাজটি হ'ল এবং একটি লেভেনস্টাইন দূরত্বকে উপস্থাপন করে এমন একটি পূর্ণসংখ্যা গ্রহণ করা (একটি স্ট্রিংকে অন্যে তৈরি করতে characters োকাতে , মুছতে বা পরিবর্তন করতে হবে এমন অক্ষরের সংখ্যা) এবং আপনাকে অবশ্যই সেই দূরত্বের সাথে ভারসাম্যযুক্ত স্ট্রিংয়ের সংখ্যাটি খুঁজে পেতে হবে মূল স্ট্রিং থেকে (অর্থাত্ স্ট্রিংটির প্রতিবেশ)

ভিভিন্ন শর্ত

  • ভারসাম্যযুক্ত স্ট্রিংগুলিতে কেবলমাত্র অক্ষর থাকবে ()<>[]{}

  • আপনাকে কেবল ইতিবাচক এমনকি দূরত্বের জন্য পাড়াগুলি অনুসন্ধান করতে বলা হবে

  • ইনপুট এবং আউটপুট নমনীয়। যতক্ষণ আপনি সমস্ত সঠিক ডেটা গ্রহণ করেন এবং কোনও ফাঁকা লঙ্ঘন না করে সঠিক উত্তরটি আউটপুট করেন আমি আপনার উত্তর নিয়ে খুশি।

  • আপনি যদি চয়ন করেন তবে আপনার সমস্ত পূর্ণসংখ্যা ইনপুটগুলিকে 2 দিয়ে ভাগ করতে বেছে নিতে পারেন।

  • এটি তাই উদ্দেশ্য আপনার উত্তরটিতে বাইট সংখ্যা হ্রাস করা

এটি এই সিএমসি এবং এই উত্তর দ্বারা অনুপ্রাণিত হয়েছিল

Testcases

   Case   | Distance | Size of Neighborhood
--------------------------------------------
    ()    |    2     |         18
   ({})   |    2     |         33
   (())   |    2     |         32
    <>    |    4     |        186
   [][]   |    4     |        688
  <(){}>  |    4     |        1379
    {}    |    6     |        2270
  []{}[]  |    6     |        41097

এখানে প্রকৃত আশেপাশের কয়েকটি ছোট উদাহরণ রয়েছে:

(), 2 :
{'', '<>', '()[]', '()()', '(())', '([])', '()<>', '{}', '{()}', '<>()', '(){}', '{}()', '<()>', '(<>)', '[()]', '[]()', '({})', '[]'}

({}), 2 :
{'([]{})', '()', '{}', '<({})>', '({<>})', '<{}>', '({()})', '(<>{})', '({}<>)', '({[]})', '(({}))', '({{}})', '({}[])', '{({})}', '({})()', '{}({})', '(())', '()({})', '([])', '<>({})', '({}{})', '({}){}', '({})<>', '(<{}>)', '({})[]', '((){})', '[{}]', '{{}}', '[]({})', '(<>)', '({}())', '([{}])', '[({})]'}

(()), 2 :
{'(())[]', '<>(())', '()', '{}(())', '{()}', '({()})', '{(())}', '(([]))', '(({}))', '(()[])', '(())<>', '((()))', '([])', '((<>))', '()(())', '(<()>)', '([()])', '[(())]', '(()){}', '(())()', '(()())', '(<>())', '(()<>)', '((){})', '<(())>', '<()>', '([]())', '(<>)', '({}())', '[()]', '({})', '[](())'}

<>, 4 :
{'<><<>>', '(<>)<>', '[<>][]', '<<><>>', '(){<>}', '(<>)()', '[<()>]', '<({})>', '<>()<>', '<[<>]>', '[][]<>', '<>[]<>', '<><><>', '[]<{}>', '[]<<>>', '[]<><>', '{<><>}', '[{<>}]', '<(<>)>', '(())<>', '{}<>{}', '()(<>)', '{()<>}', '(())', '{<>{}}', '(<><>)', '([])<>', '[]<[]>', '<{}<>>', '<><()>', '{()}<>', '{{}}<>', '{<>()}', '<<>>()', '{<<>>}', '<()>()', '<[]>()', '<>[<>]', '(<>())', '{}<>()', '(()<>)', '[{}]', '{{}}', '[]()', '[(<>)]', '<{}[]>', '<<>>[]', '{}<()>', '<>', '[()]<>', '<()><>', '[[]]<>', '[{}]<>', '[]<>[]', '()[<>]', '[]<>()', '{<>}{}', '{<[]>}', '<>(<>)', '(<>)[]', '<{}>()', '{}<><>', '{<>}()', '{[]}', '{[]}<>', '<<<>>>', '[]<()>', '<<[]>>', '<<{}>>', '[[]]', '()()<>', '[]{<>}', '<><[]>', '[[]<>]', '<{}()>', '<{<>}>', '<[]{}>', '{}<{}>', '<{}>[]', '()<<>>', '(<()>)', '[]{}', '{{}<>}', '{}()', '()<>[]', '<{}><>', '{[<>]}', '<><{}>', '<(())>', '<><>{}', '[()]', '<<>>{}', '{}{}<>', '[<<>>]', '<[][]>', '(<<>>)', '<[]><>', '[<>]<>', '[<>[]]', '[{}<>]', '{()}', '{<>[]}', '[]{}<>', '{(<>)}', '(<[]>)', '()[]<>', '<>{<>}', '{[]<>}', '(<>{})', '({}<>)', '[<><>]', '<><>()', '{}[<>]', '<{[]}>', '<<()>>', '<<>{}>', '([<>])', '<[]()>', '()()', '([])', '[[<>]]', '((<>))', '[](<>)', '(){}<>', '[()<>]', '<([])>', '<()()>', '[][]', '<<>[]>', '[<[]>]', '({})<>', '<{{}}>', '<[{}]>', '<{}{}>', '{}(<>)', '<<>><>', '[<>()]', '[][<>]', '({})', '{}[]<>', '{}<[]>', '<[()]>', '()[]', '<()>[]', '{{<>}}', '(<>){}', '{}{}', '({<>})', '{<()>}', '{}{<>}', '[]()<>', '<[]>[]', '(<>[])', '<[]>{}', '{}()<>', '()<[]>', '()<{}>', '{}<<>>', '<{}>{}', '{}[]', '()<>{}', '<()<>>', '[<>{}]', '{<>}[]', '<<>()>', '<><>[]', '{<{}>}', '<()[]>', '()<><>', '[<>]()', '()<>()', '{}<>[]', '<{()}>', '(<{}>)', '(){}', '()<()>', '<(){}>', '{<>}<>', '<[[]]>', '[]<>{}', '([]<>)', '<[]<>>', '[<>]{}', '<()>{}', '<>{}<>', '[<{}>]'}

2
ব্রেন-ফ্ল্যাক ব্রুটে-ফোরসার করার চেষ্টা করছেন? : ডি
mbomb007

@ mbomb007 আমি আপনার সমস্ত পরামর্শ আমলে নিয়েছি। সাহায্যের জন্য ধন্যবাদ!
অ্যাডহক গার্ফ হান্টার


উত্তর:


3

গণিত, 187 173 বাইট

Length@Union@Select[""<>#&/@(Tuples[Characters@" ()[]<>{}",StringLength@#+#2]/." "->""),sFixedPoint[StringReplace["()"|"[]"|"{}"|"<>":>""],s]==""&&EditDistance[s,#]==#2]&

নিষ্ঠুর জোর খাঁটি ফাংশন। #প্রথম আর্গুমেন্ট (স্ট্রিং শুরু করে) #2উপস্থাপন করে এবং দ্বিতীয় আর্গুমেন্ট (দূরত্ব) উপস্থাপন করে।

Characters@" ()[]<>{}"সম্ভাব্য অক্ষরের তালিকা (সহ " ")

Tuples[Characters@" ()[]<>{}",StringLength@#+#2] বেশিরভাগ মূল স্ট্রিং দৈর্ঘ্য এবং দূরত্বের দৈর্ঘ্য সহ সেই অক্ষরের সমস্ত টিপলগুলির তালিকা।

Tuples[Characters@" ()[]<>{}",StringLength@#+#2]/." "->""সমস্ত " "অক্ষরকে খালি স্ট্রিংয়ের সাথে প্রতিস্থাপন করে ।

""<>#&/@(...) এই সমস্ত চরিত্রের তালিকাকে স্ট্রিংয়ে যুক্ত করে।

এরপরে আমরা এই জাতীয় Selectসমস্ত স্ট্রিং যা ভারসাম্যযুক্ত এবং EditDistanceনিম্নলিখিত ফাংশনগুলির সাথে উপযুক্ত :

s                                                                                                 String s
                                                                                                 maps to
  FixedPoint[StringReplace["()"|"[]"|"{}"|"<>":>""],s]                                              the fixed point of cancelling out pairs of brackets
                                                      ==                                             equals
                                                        ""                                          the empty string
                                                          &&                                        and
                                                            EditDistance[s,#]==#2                   the distance from s to # is #2

এর পরে আমরা Unionসদৃশগুলি মুছতে এবং এটি ব্যবহার করতে চাই Length

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