গল্ফস্ক্রিপ্ট ডায়াগোনাল অ্যারে


11

গল্ফস্ক্রিপ্টে কোনও অ্যারের সমস্ত ত্রিভুজকে একক অ্যারে আনার কোনও উপায় আছে কি?

উদাহরণস্বরূপ, অ্যারের জন্য

[[1 2 3][4 5 6][7 8 9]]

প্রত্যাবর্তন

[[7][4 8][1 5 9][2 6][3]]

(অগত্যা এই ক্রমে নয়) এবং এর জন্য

["ABCD""EFGH""IJKL"]

প্রত্যাবর্তন

["I""EJ""AFK""BGL""CH""D"]

(অগত্যা, যাতে). ধরুন অ্যারেগুলির দৈর্ঘ্য সমান।

আমি এটি খুঁজে বের করার সাথে লড়াই করছি। আমি স্ট্রিংয়ের th অক্ষরটি =দিয়ে কিছু করার চেষ্টা করেছি এবং (length+1)এটি কার্যকর হয়নি। কেউ আমাকে সাহায্য করতে পারেন?

আমি যদি সম্ভব হয় তবে এটি করার সবচেয়ে কম উপায় চাই way


এটি আপনার নিয়মিত প্রশ্নোত্তর সাইট নয়; আপনার একটি বিজয়ী মানদণ্ড হওয়া দরকার। আমি শুরু করার জন্য একটি জনপ্রিয়তা সামগ্রী প্রস্তাব।
টিমটেক

@ টিমটেক আমি বুঝতে পারি আমি নিয়মিত স্ট্যাকেক্সচেঞ্জের চেষ্টা করব।
জোশিয়াহ উইনস্লো

7
ভাষা-নির্দিষ্ট গল্ফ পরামর্শের প্রশ্নগুলি আনুষ্ঠানিকভাবে বিষয়বস্তুতে রয়েছে: meta.codegolf.stackexchange.com/a/1725/20260
xnor

5
@xnor আপনি সেখানে ভুল উত্তরের সাথে যুক্ত হয়েছেন। এটি হ'ল আমাদের কাছে থাকা সেই টিপস তালিকা সম্পর্কে। তবে সুনির্দিষ্ট পরামর্শের জন্য জিজ্ঞাসা করা বিষয়গুলিও তাই লোকেরা এটিকে কম ভোট দেওয়া বন্ধ করতে পারলে ভাল হবে।
মার্টিন এেন্ডার

7
@ স্টিভেরিলিল আমি একমত নই যে এগুলি সিডব্লিউ করা উচিত। যে শুধুমাত্র তালিকা প্রশ্নের ক্ষেত্রে প্রযোজ্য (আসলে, আমি এমনকি একমত না যে হিসাবে The CW হওয়া উচিত), কিন্তু সত্যিই নির্দিষ্ট পরামর্শ প্রশ্নের জন্য কোনো কারণ হিসাবে The CW হতে - তারা মূলত মাইক্রো-অপ্টিমাইজেশান golfing প্রতিযোগীতা আছে, এবং মানুষ উত্তর তারা এর জন্য প্রতিনিধি প্রাপ্য (অনুরোধকারী যেমন প্রশ্ন আকর্ষণীয় হয়)।
মার্টিন এণ্ডার

উত্তর:


8

বিবেচনা

[
    "ABCD"
    "EFGH"
    "IJKL"
]

এর উপরের মূল এবং ত্রিভুজগুলি পেতে, আমরা দ্বিতীয় সারির প্রথম চরটি এবং তৃতীয়টির প্রথম দুটি বের করতে পারি:

[
    "ABCD"
    "FGH"
    "KL"
]

মনে রাখবেন যে সমস্ত কলামগুলি একটি তির্যকের সাথে মিলে যায়, সুতরাং অ্যারেটিকে "জিপ করা" (অর্থাত্ সারি এবং কলামগুলি স্থানান্তর করা) উপরোক্ত চারটি ত্রিভুজ যুক্ত অ্যারে প্রদান করবে:

[
    "AFK"
    "BGL"
    "CH"
    "D"
]

আমরা এখনও মূল ত্রিভুজের নীচে কর্ণগুলি মিস করছি।

যদি আমরা নিজেই জিপ করে এবং উপরের প্রক্রিয়াটির পুনরাবৃত্তি করি, আমরা মূল তির্যক এবং এর নীচে সমস্ত তির্যক সমন্বিত একটি অ্যারে পাব । উভয় অ্যারের সেট ইউনিয়ন গণনা করতে এটাই বাকি রয়েছে।

সবগুলোকে একত্রে রাখ:

[.zip]{:A,,{.A=>}%zip}/|


[.zip]{              }/  # For the original array and it's transpose, do the following:
       :A                # Store the array in A.
         ,,{    }%       # For each I in [ 0 1 ... len(A) ], do the following:
            .A=>         # Push A[I] and shift out its first I characters.
                  zip    # Transpose the resulting array.
                       | # Perform set union.

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

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

তুমি ব্যবহার করতে পার

..,n**\.0=,\,+)/zip

সমস্ত তির্যক, এবং কিছু অপ্রয়োজনীয় লাইনফিড অক্ষর পেতে।

আমি এই উত্তরে প্রক্রিয়াটি বিস্তারিতভাবে ব্যাখ্যা করেছি ।

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

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