একটি সংক্ষিপ্ত বিবরণ তৈরি করুন


19

এটি একটি সংক্ষিপ্ত বিবরণ তৈরির অনুরূপ , তবে সংক্ষিপ্ত বিবরণ আনার পদ্ধতি এবং নমনীয় আউটপুট সহ এই চ্যালেঞ্জ সহ বেশ কয়েকটি মূল পার্থক্য রয়েছে।

কার্য

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

পরীক্ষার কেস:

আউটপুট বিন্যাস হতে পারে "TEST", ["T","E","S","T"]আপনার জন্য, অথবা যাই হোক না কেন অন্য কাজ করে।

Self-contained Underwater Breathing Apparatus
SUBA

a Programming Language
PL

NATO Atlantic TREATY Organization
NATO

DEFCON 2
D

hello, world!


light-Emitting dioDe
E

What Does the Fox Say?
WDFS


3D mov-Ies
I

laugh-Out Lou-D
OLD

Best friends FOREVE-r
BF

--


<space>


--  --a -  - --


--  -- -  - -- A
A

Step-Hen@Gmail-Mail Mail.CoM m
SHMM

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



স্ট্রিংসের (অক্ষরের তালিকা) তালিকা হিসাবে কি আমরা ইনপুট নিতে পারি?
মিঃ এক্সকোডার

@ মিঃ এক্সকোডার হ্যাঁ
স্টিফেন

আপনি কি এমন কোনও পরীক্ষার কেস যুক্ত করতে পারেন যাতে এক বা একাধিক অক্ষর দ্বারা পৃথক হওয়া কিছু অক্ষর অন্তর্ভুক্ত থাকে যা অক্ষর, সংখ্যা, স্পেস বা ড্যাশ নয়। একটি ই-মেইল ঠিকানা, উদাহরণস্বরূপ: My-Name@Some-Domain.TLD
শেগি

1
@ শেগি যোগ করেছেন, ধন্যবাদ
স্টিফেন

উত্তর:


8

ভি , 7 বাইট

ÍÕü¼À!õ

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

বাইট গণনা প্রমাণ করার জন্য এখানে একটি হেক্সডাম্প রয়েছে:

00000000: cdd5 fcbc c021 f5                        .....!.

ব্যাখ্যা:

Í       " Search and replace all occurrences on all lines:
        " (Search for)
 Õ      "   A non-uppercase letter [^A-Z]
  ü     "   OR
      õ "   An uppercase letter
    À!  "   Not preceded by...
   ¼    "   A word-boundary
        " (implicitly) And replace it with:
        "   Nothing

এটি সংক্ষিপ্তভাবে ভি এর দুর্দান্ত রেজেক্স সংক্ষেপণের জন্য সমস্ত ধন্যবাদ ।


এটি বেশ সংক্ষিপ্ত 0.o
স্টিফেন

@ স্টেপহেন আপনাকে ধন্যবাদ কেন! আমি মনে করি এটি সর্বোত্তমের কাছাকাছি। :)
ডিজেএমসিএমহেম

2
শব্দের সীমানা বলতে কী বোঝ? প্রশ্নটি মনে হচ্ছে যে কেবল স্থান এবং -অনুমোদিত।
নিল

8

আর , 66 63 বাইট

function(s)(s=substr(strsplit(s,' |-')[[1]],1,1))[s%in%LETTERS]

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

-৩ বাইটস স্কারাবিকে ধন্যবাদ

একটি বেনামী ফাংশন; সংক্ষিপ্ত আকারটি ভেক্টর হিসাবে প্রদান করে c("N","A","T","O")যা স্পষ্টভাবে মুদ্রিত is

একবারের জন্য, এটি আর তে খুব খারাপ নয়! বিভক্ত -বা (space)এর প্রত্যেকটির প্রথম উপাদানটি নিয়ে যায় এবং তারপরে LETTERSযাকেই রাজধানী হয় সেগুলি প্রদান করে ( মূলধন অক্ষরের সাথে একটি আর বিল্টিন), যাতে ক্রম হয়।


আমি মনে করি আপনি কয়েকটি বাইট সংরক্ষণ করতে পারেন:function(s)(s=substr(strsplit(s,' |-')[[1]],1,1))[s%in%LETTERS]
স্কারাবি

1
@ স্কারাবি আপনাকে ধন্যবাদ দুঃখিত, এটি আপডেট হতে 2 বছর সময় নিয়েছে।
জিউসেপ

6

পাইথন 2 , 59 56 বাইট

-3 বাইট ধন্যবাদ লিনকে

lambda s:[b for a,b in zip(' '+s,s)if'@'<b<'['>a in' -']

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


আমি আপনার কৌশলটি ধার করেছি '@'<b<'[', খুব সুন্দর সমাধান +1
মিঃ এক্সকোডার

তুলনা শৃঙ্খলা সম্পর্কে ভুলবেন না! '@'<b<'['>a in' -'3 বাইট সঞ্চয়
লিন

5

জাভাস্ক্রিপ্ট 21 বাইট

একটি স্ট্রিং ইনপুট নেয় এবং সংক্ষিপ্ত অক্ষর যুক্ত স্ট্রিংগুলির একটি অ্যারের আউটপুট দেয়

x=>x.match(/\b[A-Z]/g)

ব্যাখ্যা

এটি কেবলমাত্র শব্দ-সীমার জন্য একটি বৈশ্বিক রেজেক্স ম্যাচ এবং তারপরে একটি মূলধনপত্র।



4

ডায়ালগ এপিএল, 29 23 বাইট

বোনাস পরীক্ষার কেস: একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ (এপিএল)।

'(?<=^| |-)[A-Z]'⎕S'&'⊢

অক্ষরের একটি অ্যারে ফেরত দেয় (টিআইওতে বিচ্ছিন্ন স্থান হিসাবে দেখায়)।

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


পুরানো পোস্ট, 29 বাইট

{(⎕AV~⎕A)~⍨'(\w)\w+'⎕R'\1'⊢⍵}

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

কিভাবে?

'(\w)\w+'⎕R - বর্ণমালা অক্ষরের প্রতিটি ক্লাস্টার প্রতিস্থাপন করুন

    '\1' - এটির প্রথম চরিত্রটি

~⍨ - প্রতিটি চর সরান

    (⎕AV~⎕A) - এটি কোনও ASCII বড় হাতের অক্ষর নয়


3

পাইথন, 53 বাইট

import re
lambda s:re.findall("(?<=[ -])[A-Z]"," "+s)

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

স্পেস বা ড্যাশগুলির জন্য সন্ধানী একটি সাধারণ নিয়মিত প্রকাশ শুরুর সাথে মিলে না গিয়ে একটি স্থান প্রস্তুত করুন।


মিস্টার এক্স কোডার পরীক্ষার স্যুটটির সাথে একটি টিআইও লিঙ্কে সম্পাদিত।
স্টিফেন

ধন্যবাদ @ স্টেপহেন - আপনি এতে আমাকে পরাজিত করেছেন এবং আমার প্রচেষ্টাটি বাঁচিয়েছেন
ক্রিস এইচ


3

সি #, 84 78 বাইট

using System.Linq;s=>s.Where((c,i)=>c>64&c<91&(i>0?s[i-1]==32|s[i-1]==45:1>0))

@ জেকেলমকে ধন্যবাদ 6 বাইট সংরক্ষণ করা হয়েছে

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

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

using System.Collections.Generic;
using System.Linq;

class P
{
    static void Main()
    {
        System.Func<string, IEnumerable<char>> f = s => s.Where((c, i) => c > 64 & c < 91 & (i > 0 ? s[i-1] == 32 | s[i-1] == 45: 1 > 0));

        System.Console.WriteLine(string.Concat(f("Self-contained Underwater Breathing Apparatus")));
        System.Console.WriteLine(string.Concat(f("a Programming Language")));
        System.Console.WriteLine(string.Concat(f("NATO Atlantic TREATY Organization")));
        System.Console.WriteLine(string.Concat(f("DEFCON 2")));
        System.Console.WriteLine(string.Concat(f("hello, world!")));
        System.Console.WriteLine(string.Concat(f("light-Emitting dioDe")));
        System.Console.WriteLine(string.Concat(f("What Does the Fox Say?")));
        System.Console.WriteLine(string.Concat(f("3D mov-Ies")));
        System.Console.WriteLine(string.Concat(f("laugh-Out Lou-D")));
        System.Console.WriteLine(string.Concat(f("Best friends FOREVE-r")));
        System.Console.WriteLine(string.Concat(f(" ")));
        System.Console.WriteLine(string.Concat(f("--  --a -  - --")));
        System.Console.WriteLine(string.Concat(f("--  -- -  - -- A")));

        System.Console.ReadLine();
    }
}

অব্যাহতি using System.Linqপেলে আপনাকে কেন বাইট গণনাতে অন্তর্ভুক্ত করতে হবে using System.Collections.Generic? কিছু sensকমত্য আছে যার ভিত্তিতে usingগণনাযোগ্য?

using System.Linq;আমার উত্তরে লিংক কোডের জন্য @ ডেভ পার্সনগুলি প্রয়োজন। তবে, IEnumerbale<char>উত্তরের অংশ নয় এবং এটি কোডটির একটি অংশ যা using System.Collections.Generic;সংকলন করা দরকার।
TheLethalCoder

বোধ করা; বিবৃতির জন্য ধন্যবাদ.

চরগুলি ইনট হিসাবে ব্যবহার করে বড় হাতের অক্ষর পরীক্ষা করে আপনি কয়েকটি বাইট সংরক্ষণ করতে পারেন। c> 64 & সি <91 এর 6 টি বাইট নেট করা উচিত।
জেকলেম

@ জেকেলাম নিস :) আমি সর্বদা সেই কৌশলটি ভুলে যাই!
TheLethalCoder

3

জুলিয়া 0.6.0 (57 বাইট)

s=split(s,r" |-");for w∈s isupper(w[1])&&print(w[1])end

ব্যাখ্যা: এটি আমার প্রথম কোড-গল্ফ। অনেকটাই অকপট. শব্দগুলি বিভক্ত করুন, প্রতিটিটির প্রথম উপরের চিঠিটি মুদ্রণ করুন।

সম্ভবত রিজেক্স ব্যবহার করে আরও ভাল করা সহজ তবে আমি এতে নতুন


1
পিপিসিজিতে আপনাকে স্বাগতম! আমি এখনই ভোটের বাইরে, আমি এটি পরে উত্সাহিত করব।
স্টিফেন

2
@ স্টেপহেন : পি
ডিজেএমসিএমহেম


2

সি # (.নেট কোর) , 108 বাইট

n=>{var j="";n=' '+n;for(int i=0;++i<n.Length;)if(" -".IndexOf(n[i-1])>=0&n[i]>64&n[i]<91)j+=n[i];return j;}

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


চেক করা হয়নি তবে ifটের্নারি পরিবর্তন করা আপনার বাইটগুলি বাঁচাতে পারে। সূচিতে এই শুরু 2পরিবর্তে 1, শুধু পরিবর্তন int i=1করতে int i=0এটি ঠিক করার। আপনি ছাড়া এখানে আরো অনেক কিছুই করা যায় বলে আমি মনে করি না।
TheLethalCoder

কোনও ত্রৈমাসিকী এখানে সহায়তা করবে না, কারণ এটি যদি একটি বিবৃতি হিসাবে একই বাইট গণনা হবে। যাইহোক, আপনি ঠিক বলেছেন যে আমার প্রাথমিক আই মানটি পরিবর্তন করতে হবে
জেকলমে

আমি পুরোপুরি নিশ্চিত ছিলাম না তবে এগুলি সাধারণত ছোট হয় so
TheLethalCoder 15

2

জেলি ,  11  10 বাইট

-1 বাইট ধন্যবাদ এরিক দ্য আউটগোল্ফারকে ( স্পেসে বিভাজন> _ <)

⁾- yḲḢ€fØA

একটি monadic লিঙ্ক অক্ষর তালিকা গ্রহণ এবং ফিরে।
একটি সম্পূর্ণ প্রোগ্রাম হিসাবে একটি স্ট্রিং গ্রহণ করে এবং ফলাফল মুদ্রণ।

এটি অনলাইন চেষ্টা করুন! অথবা একটি পরীক্ষা স্যুট দেখুন

কিভাবে?

⁾- yḲḢ€fØA - Link: list of characters, x       e.g. "Pro-Am Code-golf Association"
   y       - translate x with:
⁾-         -   literal list of characters ['-',' '] "Pro Am Code golf Association"
    Ḳ      - split at spaces               ["Pro","Am","Code","golf","Association"]
     Ḣ€    - head each (1st character of each)      "PACgA"
        ØA - yield uppercase alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
       f   - filter keep                            "PACA"
           - if running as a full program: implicit print

উম্ম, পরিবর্তে ব্যবহার করবেন না কেন ṣ⁶?
এরিক আউটগল্ফার

হেই, কারণ আমি এটা ভুলে গেছি। ধন্যবাদ!
জোনাথন অ্যালান

2

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

24 বাইট কোড +1 এর জন্য -n

বিরক্তিকর যা grep -Pপরিবর্তনশীল দৈর্ঘ্যের চেহারা পিছনে সমর্থন করে তবে পার্ল তা করেন না :(।

print/(?:^| |-)([A-Z])/g

-1 বাইট @ দাদাকে ধন্যবাদ !

এটি অনলাইন চেষ্টা করুন! - -lএকবারে সমস্ত পরীক্ষা চালানো অন্তর্ভুক্ত ।


আপনি চূড়ান্তভাবে আরও অনেক কিছু করতে পারেন: এটি অনলাইনে চেষ্টা করুন! ;-)
দাদা

@ দাদা হাহ! অবশ্যই ... আমি এটিএম বাইরে আছি তবে ফিরে আসার পরে আপডেট করব। ধন্যবাদ! আমি বেশ আমি পাই নি হতাশ s///বা $_=অস্বীকার করার print...
ডোম হেস্টিংস

হ্যাঁ, আমি এটি s///সমাধান করার জন্য একটি একক খুঁজছিলাম কিন্তু এটি স্পষ্ট নয় ... আমি কর্মে আছি, সম্ভবত পরে এটিকে আরও একবার চেষ্টা করবো!
দাদা


2

ব্র্যাচল্যাগ , 25 23 22 বাইট

,Ṣ↻s₂ᶠ{h∈" -"&t.∧Ạụ∋}ˢ

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

(-২ বাইটস @ ফ্যাটালাইজকে ধন্যবাদ

,Ṣ↻                      % prepend a space to input
   s₂ᶠ                   % get all substrings of length 2 from that, to get prefix-character pairs
      {              }ˢ  % get the successful outputs from this predicate: 
       h∈" -"              % the prefix is - or space
               &t.∧        % then the character is the output of this predicate if:
                  Ạụ∋        % the alphabet uppercased contains the character

আপনি দুটি বাইট সংরক্ষণ করার পরিবর্তে ব্যবহার করতে পারেন" "
ফ্যাটালাইজ করুন

2

জাপট , 19 16 14 বাইট

-২ বাইট শ্যাগিকে ধন্যবাদ

f/^| |-)\A/ mÌ

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


আপনি v2 ব্যবহার করছেন থেকে, আমার মনে হয় আপনি পরিবর্তন করতে পারেন "(^| |-)%A"থেকে /^| |-)\A/একটি বাইট সংরক্ষণ করতে
ETHproductions

1
mf\A-> 2 বাইট সংরক্ষণ করুন।
শেগি

2

সুইফট 5 , 110 বাইট

-5 Cur ধন্যবাদ

import UIKit
func f(s:[String]){for i in zip(s,[" "]+s){if i.0.isUppercase()&&"- ".contains(i.1){print(i.0)}}}

বিস্তারিত ব্যাখ্যা

  • import Foundation- এই কোডের মূল টুকরাটির Foundationজন্য প্রয়োজনীয় মডিউলটি আমদানি করে zip()

  • func f(s:[String]){...}- একটি পরামিতি দিয়ে একটি ফাংশন তৈরি করে s, এটি স্ট্রিংগুলির একটি তালিকা যা ইনপুটটির চরিত্রগুলি উপস্থাপন করে।

  • for i in zip(s,[" "]+s){...}- ইনপুটটির iজিপ দিয়ে এবং শুরুতে যুক্ত হওয়া একটি স্থানের সাথে ইনপুট দিয়ে আইট্রেটস, যা স্ট্রিংয়ে আগের অক্ষরটি পাওয়ার জন্য খুব সহায়ক।

  • if - যাচাই করে কিনা:

    • i.0==i.0.uppercased() - বর্তমান চরিত্রটি বড় হাতের অক্ষর,

    • &&"- ".contains(i.1) - এবং পূর্বের অক্ষরটি যদি কোনও স্থান বা ড্যাশ হয়।

  • যদি উপরের শর্তগুলি পূরণ হয় তবে:

    • print(i.0) - চরিত্রটি মুদ্রিত হয়েছে, কারণ এটি সংক্ষিপ্ত রূপের অংশ।

এর import UIKitপরিবর্তে -5 import Foundation
সিউর



1

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

lambda n:[n[x]for x in range(len(n))if'@'<n[x]<'['and(' '+n)[x]in' -']

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


ব্যাখ্যা

  • lambda n:- একটি স্ট্রিং প্যারামিটার দিয়ে একটি বেনামে ল্যাম্বদা-ফাংশন তৈরি করে n

  • n[x]- nসূচকের চরিত্রটি পায় x

  • for x in range(len(n))- থেকে iterates 0দৈর্ঘ্যের nপরিবর্তনশীল নামকরণ x

  • if - চেক:

    • '@'<n[x]<'[' - চরিত্রটি যদি বড় হয় তবে

    • and(' '+n)[x]in' -'- এবং যদি এটির আগে কোনও স্থান বা কোনও স্থান দ্বারা গঠিত স্ট্রিংয়ের কোনও ড্যাশ থাকে n


2
এটা কি খারাপ যে আমি এটি পড়ি i supperএবং কেন আমার কোনও ধারণা নেই?
TheLethalCoder

@ দ্য লেথাল কোডার এটি .isupper(), আপনি কী পড়েন সে সম্পর্কে আমার কোনও ধারণা নেই: পি
মিঃ এক্সকোডার





1

বাশ (গ্রেপ), 29 28 বাইট

grep -oP'(?<=^| |-)[A-Z]' a

আমার পাইথন উত্তরের একটি বন্দর কিন্তু কারণ pgrepপরিবর্তনশীল দৈর্ঘ্যের বর্ণনগুলির সমর্থন করে এটি লক্ষণীয়ভাবে খাটো (এমনকি পাইথনের ওভারহেডের জন্য অ্যাকাউন্টিং)। কল করা কোনও ফাইলের পরীক্ষার কেসগুলি আটকে দিনa , আউটপুট প্রতি লাইন 1 অক্ষর।

-1 ধন্যবাদ নীলকে


^| |-একটি ছোট পরীক্ষা হতে পারে?
নীল

@ নীল যে এখানে কাজ করে, ধন্যবাদ। এটি মিস করেছেন কারণ এটি পাইথনে কাজ করে না
ক্রিস এইচ

1

RProgN 2 , 18 বাইট

`-` rû#ùr.'[a-z]'-

ব্যাখ্যা

`-` rû#ùr.'[a-z]'-
`-`                     # Push "-" literal, and " " literal.
    r                   # replace, Replaces all "-"s with " "s.
     û                  # Split, defaultly by spaces.
      #ù                # Push the head function literally.
        r               # Replace each element of the split string by the head function, which gets each first character.
         .              # Concatenate, which collapses the stack back to a string.
          '[a-z]'-      # Push the string "[a-z]" literally, then remove it from the string underneith, giving us our output. 

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


1

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

for(;~$c=$argn[$i++];$p=$c!="-"&$c!=" ")$c<A|$c>Z|$p?:print$c;

পাইপ হিসাবে চালনা করুন-nR বা এটি অনলাইনে চেষ্টা করুন

অন্যান্য সমাধান:

foreach(preg_split("#[ -]#",$argn)as$s)$s[0]>Z|$s<A?:print$s[0];  # 64 bytes
preg_match_all("#(?<=\s|-)[A-Z]#"," $argn",$m);echo join($m[0]);  # 64 bytes
preg_match_all("#(?<=\s|-)\p{Lu}#"," $argn",$m);echo join($m[0]); # 65 bytes

1

সি ++, 168 বাইট

#include<string>
auto a=[](auto&s){auto r=s.substr(0,1);if(r[0]<65||r[0]>90)r="";for(int i=1;i<s.size();++i)if(s[i]>64&&s[i]<91&&(s[i-1]==32||s[i-1]==45))r+=s[i];s=r;};

প্যারামিটার মাধ্যমে আউটপুট সম্পন্ন


সম্পূর্ণরূপে এটি অপসারণ সম্ভব হবে #include<string>এবং অনুমান যুক্তি sএকটি হল std::string?
জাকারি

1

লুয়া , 79 75 বাইট

for i=1,#t do for i in(" "..t[i]):gmatch"[%-| ]%u"do print(i:sub(2))end end

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

চেষ্টা করে দেখুন সংস্করণে চূড়ান্ত শেষ হওয়ার আগে একটি মুদ্রণ () আটকে দিয়েছি কারণ অন্যথায় এটি গোলযোগ mess এই প্রোগ্রামটি পুরোপুরি I / O এবং মিলের প্রয়োজনীয়তাগুলি মেনে চলে, তবে অতিরিক্ত অতিরিক্ত নতুন লাইনটি এটি পড়া খুব কঠিন pretty

ইনপুট সংখ্যার সারণির আকারে দেওয়া হয়: স্ট্রিং, প্রতিটি বারে সংখ্যা বাড়িয়ে 1 থেকে শুরু করে।

ব্যাখ্যা:

এটি প্রতিটি ইনপুট স্ট্রিংয়ের গ্যাম্যাচ দিয়ে লুপের জন্য। গ্যাম্যাচ অনুসন্ধানটি নিম্নরূপ:

[% - | ] - গ্রুপ, একটি - বা একটি স্থান অনুসন্ধান করুন

% u - বড় হাতের অক্ষরের জন্য অনুসন্ধান করুন

তারপরে প্রতিটি ম্যাচের জন্য এটি পূর্বের ড্যাশ বা স্পেসটি বিয়োগ করে মুদ্রণ করে

সম্পাদনা করুন: 'ক' এর ঘোষণাকে সরিয়ে এবং লুপ ইন-এর ভিতরে ইনপুটটিতে স্থান যুক্ত করার পাশাপাশি উপ-ইনপুটটি ২,২ এর পরিবর্তে ২-এ পরিবর্তিত করে গল্ফড 4 বাইট


1

Pyth , 12 বাইট

প্রাথমিক উত্তরের এক বছর পরে তৈরি করা হয়েছে।

rI#1hMcXQ\-d

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

Pyth , 21 বাইট

প্রাথমিক উত্তর।

:+dQ"(?<=[ -])[A-Z]"1

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


-| এর চেয়ে এক বাইট কম[ -]
এটিাকো

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