আমার ওয়াশিং করতে আমাকে সহায়তা করুন


21

সাহায্য করুন! আমার সম্পূর্ণরূপে অটোমেটেড লাইটগুলি থেকে ডার্স পৃথককারী V3001.01 ভেঙে গেছে! :(

নির্দেশিকা


কার্য

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


বিধি

  • এটি কোড গল্ফ তাই বাইটে সংক্ষিপ্ত উত্তর জিতেছে
  • ইনপুটটিতে কেবল সর্বদা রাজধানী থাকবে
  • ইনপুটটিতে যেমন রয়েছে এল এর একই সংখ্যা থাকতে হবে, ডি এর ক্ষেত্রে একই রকম হয়
  • ইনপুটটিতে কেবলমাত্র একটি উপাদান থাকতে পারে (বা শূন্য উপাদান এমনকি হতে পারে )
  • যদি দুটি বা আউটপুট অ্যারেতে কোনও উপাদান থাকে না, একটি খালি তালিকা আউটপুট করুন (কিছু ভাষায় এর অর্থ আপনার স্ট্রিং আউটপুট করতে হবে)
  • সর্বদা প্রথম অ্যারেতে এল এর অ্যারে থাকুন

উদাহরণ আউটপুট:

["L","D","L","D","D"] -> [["L","L"],["D","D","D"]]

["L","L","L"] -> [["L","L","L"],[]]

["D","D"] -> [[],["D","D"]]

[] -> [[],[]]


3
আমরা কি স্ট্রিং হিসাবে ইনপুট / আউটপুট দিতে পারি? যেমন: "LDLDD" -> "LL DDD"নাকি এরকম কিছু?
কমরেড স্পার্কলপনি

3
বা দুটি স্ট্রিংয়ের তালিকা হিসাবে সম্ভবত আউটপুট, যেমন `" এলডিএলডিডি "-> [" এলএল "," ডিডিডি "]
কমরেড স্পার্কলপনি

আমার উত্তরটি এর উপর নির্ভর করে যেমন একটি উত্তরও
চাইবে

মিশ্র আউটপুট সম্পর্কে কীভাবে? একটি স্ট্রিং এবং স্ট্রিংগুলির একটি অ্যারে সমন্বিত অ্যারে হিসাবে? যেমন ["L","L",["D","D","D"]],।
শেগি

না, আউটপুট অবশ্যই একটি অ্যারে / তালিকা হতে হবে। @ কমরেডস্পার্কলপনি
আমোরিস

উত্তর:


12

এপিএল, 8 বাইট

'DL'~⍨¨⊂

ব্যাখ্যা:

  • : বদ্ধ ইনপুট
  • ~⍨¨: প্রতিটি ছাড়া
  • 'DL': 'ডি' এবং 'এল'

উদাহরণ:

      ('DL'~⍨¨⊂) 'LDLDD'
┌──┬───┐
│LL│DDD│
└──┴───┘
      ('DL'~⍨¨⊂) 'LLL'
┌───┬┐
│LLL││
└───┴┘
      ('DL'~⍨¨⊂) 'DD'
┌┬──┐
││DD│
└┴──┘
      ('DL'~⍨¨⊂) ''
┌┬┐
│││
└┴┘

কেন হয় 'DL'না 'LD'?
ফাঁস নুন

@ লিকিউন: যোগ করেছেন ব্যাখ্যা। এটি সঠিক চরিত্রটি নির্বাচন না করে ভুল চরিত্রটি সরিয়ে কাজ করে।
মেরিনাস

1
'LD'∩⍨¨⊂বা ⍞∘∩¨'LD'ব্যাখ্যা করা সহজ হতে পারে।
অ্যাডম



4

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

অনুমান দেওয়া তালিকাটি হ'ল: $arr = ['L','L','D','D','L','D','D','D','D','L'];

foreach($arr as $b){$a[$b][]=$b;};print_r($a);


3
ডিফল্ট আই / ও নিয়ম হিসাবে, আপনি অনুমান করতে পারবেন না যে ইনপুটটি একটি ভেরিয়েবলের মধ্যে সঞ্চয় করা আছে
কীউ গান

@ কেয়ুগান আরগ! পর্যাপ্ত পরিমাণে
স্কটএমসিগ্রিডি

2
$argvপরিবর্তে ব্যবহার করুন $arrএবং স্ক্রিপ্টটি কমান্ড লাইন থেকে চালিত হওয়ার প্রত্যাশা করতে পারে php -f golf.php L L D D L D D D D L- তবে তারপরে আপনাকে আবার $ argv [0] যেতে হবে যা ফাইলের নাম
এজেনিস

1
এইভাবে সবচেয়ে সংক্ষিপ্ত সমাধানগুলি ব্যবহার করে for(;$b=$argv[++$i];)$a[$b][]=$b;print_r($a);বা<?foreach($_GET as$b)$a[$b][]=$b;print_r($a);
জার্গ হালসারম্যান

বছরের পর বছর লুকিয়ে থাকার পরে আমার প্রথম গল্ফ প্রচেষ্টা এবং আমি এখনও সম্পূর্ণ অপেশাদার! আপনার মতামত (এবং আপ ভোট) জন্য ধন্যবাদ সবাই যদিও :)!
স্কটএমসিগ্রিডি

3

গণিত, 27 বাইট

Rest/@Gather[{L,D}~Join~#]&

খাঁটি ফাংশন ইনপুট হিসাবে Lগুলি এবং Dগুলি (চিহ্ন, অক্ষর / স্ট্রিং নয়) এর একটি তালিকা গ্রহণ করে দুটি তালিকার একটি তালিকা ফেরত দেয়। উদাহরণ স্বরূপ,

Rest/@Gather[{L,D}~Join~#]& @ {D, L, L, D, L}

আয় {{L, L, L}, {D, D}}এটি অনলাইন চেষ্টা করুন!

Gatherআমরা যা চাই তা নিজেই কাছে, তবে দুটি উপায়ে স্পেকটি পূরণ করতে ব্যর্থ হয়: যদি ইনপুটটি Lগুলি বা Dগুলি হারিয়ে থাকে তবে খালি তালিকা তৈরি করে না এবং এটি সর্বদা Lবামে বাছাই করে না । ইনপুট প্রতিস্থাপন #সঙ্গে {L,D}~Join~#একযোগে উভয় সমস্যা solves: এটা মানে অন্তত একটি হতে হবে Lএবং অন্তত একটি Dএবং Lপ্রথম ফেরত পাঠানো হবে যেহেতু একটি Lপ্রথম সম্মুখীন হয়েছিল। Rest/@তারপরে প্রাথমিক LএবংD

(আমি ব্যবহার করে একটি সমাধান চেষ্টা করেছিলাম Count, তবে কার্যিংয়ের কারণে এটি কম বলে মনে হচ্ছে না: ±q_:=#~Table~Count[q,#]&/@{L,D}এটি 31 বাইট।


টিআইও লিঙ্ক (গণিত)?
ফাঁস নুন

1
কীভাবে Cases@@@{{#,L},{#,D}}&, 22 বাইট জন্য?
না একটি গাছ

দুর্দান্ত ধারণা, গাছ নয়! আপনার সেই উত্তরটি পোস্ট করা উচিত up আমি উত্সাহিত করব :)
গ্রেগ মার্টিন




2

পিএইচপি 7, 52 45 বাইট

-7 বাইটস @ জার্গ হালসারম্যানকে ধন্যবাদ

foreach($argv as$a)$$a[]=$a;print_r([$L,$D]);

সিএলআই হিসাবে হিসাবে ব্যবহার করুন php -r a.php L L L D D L D

স্ক্রিপ্টটি প্রদত্ত আর্গুমেন্টগুলির মধ্য দিয়ে যায় এবং এটির মান অনুসারে একটি অ্যারেতে যুক্ত করে।


1
45 বাইট -rপরিবর্তে -fঅপসারণের পরিবর্তে বিকল্পটি ব্যবহার <?phpকরে স্থানটি সরিয়ে ফেলে দিনas
জার্গ হালসারম্যান

2

কমন লিস্প, 65 66 65 বাইট

(defun f(x)`(,(remove"D"x :test'equal),(remove"L"x :test'equal)))

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

যদি, স্ট্রিংগুলির পরিবর্তে, আমরা প্রতীক ব্যবহার করি, তবে এটি আরও খাটো:

কমন লিস্প, 42 41 40 বাইট

(defun f(x)(mapcar'remove'(D L)`(,x,x)))

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

(f '(D D L L D L D)) ; => ((L L L) (D D D D)) 

2

র‌্যাকেট , 48 বাইট

(compose list((curry partition)(λ(x)(eq? x'L))))

কেবল এই বেনামে ফাংশনটি প্রয়োগ করুন, উদাহরণস্বরূপ, '(L D L D D L)


2

গণিত, 22 18 বাইট

4 বাইট ক্যালকুলেটরফ্লিন এর প্রতিভা দ্বারা সংরক্ষণ করা!

Cases@@@{#|L,#|D}&

এটি অনলাইনে বা ওল্ফ্রাম স্যান্ডবক্সে ব্যবহার করে দেখুন !

ইনপুটটি প্রতীকগুলির একটি তালিকা Lএবং D- স্ট্রিং নয়, কেবল নিজের চিঠিগুলি যেমন গ্রেগ মার্টিনের উত্তরের মতো । সিনট্যাক্স #|Lজন্য সাধারণভাবে সংক্ষেপে হয় Alternatives[#,L], কিন্তু @@@সিনট্যাক্স মাথা প্রতিস্থাপন Alternativesসঙ্গে Cases, তাই এই কোড সমতূল্য {Cases[#,L],Cases[#,D]}&


1
{#,x}#|x-4 বাইট জন্য হতে পারে
ক্যালকুলেটরফলাইন

@ ক্যালকুলেটরফ্লাইন, বাহ, সেই কৌশলটি দুর্দান্ত! ধন্যবাদ!
গাছ নয়

1
@@এবং যে @@@কোনও মাথা দিয়েই কাজ করুন, শুধু নয় List। যদি |না কাজ করে, আপনি কি এখনও সঙ্গে কিছু ক্ষেত্রে সঞ্চয় করতে পারেন &&, ||অথবা **
ক্যালকুলেটরফলাইন

আপনি .গণিত অপারেটরগুলিও ব্যবহার করতে পারেন ।
ক্যালকুলেটরফলাইন

এছাড়াও, অগ্রাধিকারের অপব্যবহারের আপনার জন্য আরও বেশি সঞ্চয় রয়েছে (আউটপুট ফর্ম্যাট পরিবর্তনের সাথে):#.L|#.D
ক্যালকুলেটরফলাইন

2

জাভা 8, 105 বাইট

import java.util.stream.*;a->Stream.of(a).collect(Collectors.groupingBy("D"::equals)).values().toArray();

টিপস স্বাগত।


পিপিসিজিতে নতুন, আমাকে কি import java.util.*;import java.util.stream.*;বাইট গণনায় অন্তর্ভুক্ত করতে হবে ?


প্রতিযোগিতামূলক নয়, এটি খালি ইনপুট দিয়ে খালি তালিকা তৈরি করে না। কিছু বাইট সংরক্ষণ করার জন্য নেভাকে ধন্যবাদ


2
আমদানি গণনা করতে হবে, বা আপনি যদি নিজের শ্রেণীর নামগুলি ছোট করে থাকেন তবে পুরোপুরি যোগ্যতা অর্জন করতে পারেন।

1
আপনি ব্যবহার করতে পারেন Stream#ofপরিবর্তে Arrays#streamআমদানি কমাতে java.util.stream.*এবং "D"::equalsপরিবর্তে k->k.equals("D")। এছাড়াও কোডটি প্রয়োজনীয়তাগুলি পূরণ করে না কারণ এটি উপস্থিত নেই L/ Dউপস্থিত থাকলে খালি তালিকা আউটপুট দেয় না (পরীক্ষার ক্ষেত্রে 2-4)।
নেভায়ে

পিপিসিজিতে আপনাকে স্বাগতম! দুর্ভাগ্যক্রমে, অবৈধ উত্তরগুলি প্রতিযোগী হিসাবে চিহ্নিত করা যায় না cannot এই উত্তরটিকে বৈধ করার জন্য আপনাকে পরিবর্তনটি করতে স্বাগত জানাই তবে আপাতত এটি মুছে ফেলা উচিত। (আপনার সম্ভবত এটি নিজেই মুছে ফেলা উচিত; যদি কোনও মোড এটিকে মুছে
ফেলেন তবে

2

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

l('L').
w(L,D,W):-partition(l,W,L,D).

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

প্রদত্ত যে Wওয়াশিং একটি তালিকা রয়েছে, w/3ঐক্যবদ্ধ করবে Lএবং Dআলোক এবং অন্ধকার যথাক্রমে তালিকা মধ্যে, একটি বিধেয় যা সফল হলে একটি আইটেম আলোকিত করে বিরুদ্ধে ওয়াশিং পার্টিশন দ্বারা।

[সম্পাদনা: golfed -5 ধন্যবাদ Fatalize ]


1
l('L').5 বাইটের চেয়ে কম সংক্ষিপ্তl(X):-X='L'.
13

@ ফ্যাটালাইজ - ধন্যবাদ! সম্পাদনা।
TessellatingHeckler

2

জাপট , ১৩ 12 10 বাইট

2Æf¥"LD"gX

এটি পরীক্ষা করুন ( -Qকেবলমাত্র দর্শনের উদ্দেশ্যে পতাকা)


ব্যাখ্যা

অ্যারের অন্তর্নিহিত ইনপুট U

অ্যারে তৈরি করুন [0,1]এবং প্রতিটি উপাদান Xবর্তমান উপাদান হিসাবে একটি ফাংশন মাধ্যমে পাস করুন ।

Uসমতার জন্য পরীক্ষা করে ফিল্টার করুন ...

"LD"gX

... LDইনডেক্সে স্ট্রিংয়ের অক্ষর সহ X


"হুম, ¥কাজ করা উচিত ..." [["L","L","D","D"],[]]"না, সেখানে যাচ্ছি না :)" - আমাকে 2017
ইটিএইচ প্রোডাকশনস

@ ইথ প্রডাকশন: হা-হা! হ্যাঁ, আমি এটি ছাড়া কাজ করার চেষ্টা করার জন্য অনেকগুলি উপায় চেষ্টা করেছি ¥
শেগি



1

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

এটি (এখন মুছে ফেলা) জাভাস্ক্রিপ্ট (ES6) উত্তরের উপর ভিত্তি করে।

a=>[(b=c=>a.filter(d=>c==d))`L`,b`D`]

অবরুদ্ধ সংস্করণ:

function(array) {
  function filter(character){
    return array.filter(function(d) {
      return character == d;
    });
  }
  return [filter("L"), filter("D")];
}

কোড স্নিপেট উদাহরণ:

f=

a=>[(b=c=>a.filter(d=>c==d))`L`,b`D`]

console.log(f(["L", "D", "L", "D", "D"]))


1

সি #, 61 বাইট

using System.Linq;a=>new[]{a.Where(c=>c<69),a.Where(c=>c>68)}

সম্পূর্ণ / ফর্ম্যাট সংস্করণ:

using System;
using System.Linq;

class P
{
    static void Main()
    {
        Func<char[], System.Collections.Generic.IEnumerable<char>[]> f =
            a => new[] { a.Where(c => c < 69), a.Where(c => c > 68) };

        Console.WriteLine(string.Join(", ", f(new[]{ 'L', 'D', 'L', 'D', 'D' }).SelectMany(a => a.Select(c => c))));

        Console.ReadLine();
    }
}

1

এফ # , 37 বাইট

let f s=List.partition(fun a->a="L")s

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

স্ট্রিংগুলির তালিকা হিসাবে ইনপুট নেয় এবং দুটি তালিকাই দেয়, প্রথমটি fun a -> a="L"সত্য যেখানে উপাদান রয়েছে এবং অন্যটি উপাদানগুলির সাথে ফলস যা মিথ্যা হয়।


1

জেলি , 10 বাইট

ẎfЀ⁾LDW€€

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

জেলিতে একটি স্ট্রিং হল 1-চর পাইথন স্ট্রিংগুলির একটি তালিকা, যেমন ['a', 'b', 'c']। এজন্য আপনি যেমন আউটপুট পান[[['L'], ['L']], [['D'], ['D'], ['D']]] , যেহেতু 1-চর জেলি স্ট্রিংগুলি একই আচরণ করে।

পুরো প্রোগ্রাম হিসাবে কাজ করে না, তাই ÇŒṘনীচের অংশে।


@ লিও হুম, আপনি ঠিক থাকতে পারেন ... ঠিক আছে।
এরিক আউটগল্ফার

মনে হচ্ছে জেলি ইনপুটটি জেলি আউটপুট থেকে আলাদা? string->char[]দোভাষা স্বয়ংক্রিয়ভাবে কি করতে পারে ?
nmjcman101

1
@ nmjcman101 স্ট্রিংগুলিতে এটি আলাদা, যেহেতু ইনপুট পাইথন ফর্ম্যাটে এবং আউটপুট জেলি ফর্ম্যাটে রয়েছে। এজন্য আমার W€€অংশটি দরকার ।
এরিক আউটগল্ফার

1

পার্স , 21 বাইট

part(i,fn(x){x=="L"})

আমি বিশেষত এই চ্যালেঞ্জের জন্য তালিকা বিভাজনের ফাংশনটি প্রয়োগ করেছি বা নাও করতে পারি। স্ট্রিংগুলির অ্যারে হিসাবে ইনপুট নেয়।



1

জাভা 8, 110 106 বাইট

a->{String[]r={"",""};for(char c:a)r[c/69]+=c;return new char[][]{r[1].toCharArray(),r[0].toCharArray()};}

-4 বাইট @ নেভায়ে ধন্যবাদ ।

ব্যাখ্যা:

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

a->{                      // Method with char-array parameter and 2D char-array return-type
  String[]r={"",""};      //  Two Strings in an array
  for(char c:a)           //  Loop over the characters of the input
    r[c/69]+=c;           //   Append either of the two String with the character
                          //   c/69 will result in 0 for 'D' and 1 for 'L'
                          //  End of loop (implicit / single-line body)
  return new char[][]{    //  Return a 2D character-array
    r[1].toCharArray(),   //   With the String for L's converted to a char-array
    r[0].toCharArray()};  //   and String D's converted to a char-array
}                         // End of method

1
আপনি যদি অন্য বিবৃতিটি সরাতে একটি অ্যারেতে l এবং d সঞ্চয় করতে পারেন। a->{String[]r={"",""};for(char c:a)r[c/69]+=c;return new char[][]{r[1].toCharArray(),r[0].toCharArray()};}(-4 বাইট)
নেভায়ে






0

সিজেম , 14 বাইট

"LD"qf{1$e=*}`

ইনপুট হ'ল অক্ষরের (স্ট্রিং) তালিকা, আউটপুট অক্ষরের তালিকার তালিকা (স্ট্রিংয়ের তালিকা) of

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

ব্যাখ্যা:

"LD"  e# Push the string "LD"                  | "LD"
q     e# Push the input                        | "LD" "LDLLDLDDL"
f{    e# Foreach char in "LD", push input and: | ['L "LDLLDLDDL"
  1$  e#   Copy from 1 back                    | ['L "LDLLDLDDL" 'L
  e=  e#   Count occurences                    | ['L 5
  *   e#   Repeat character                    | ["LLLLL"
}     e# End                                   | ["LLLLL" "DDDD"]
`     e# Stringify:                            | "[\"LLLLL\" \"DDDD\"]"
e# Implicit output: ["LLLLL" "DDDD"]

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