ছোমড ডিকোড করুন


26

চ্যালেঞ্জ

একটি তিন অঙ্কের অষ্টাল অনুমতি নম্বর দেওয়া, এটি মঞ্জুরি দেয় এমন অনুমতিগুলি আউটপুট করুন।

chmod

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

অনুমতি সংখ্যার তিনটি সংখ্যা পৃথক ব্যক্তির প্রতিনিধিত্ব করে:

  • প্রথম সংখ্যাটি ব্যবহারকারীর জন্য অনুমতিগুলি উপস্থাপন করে
  • দ্বিতীয় সংখ্যাটি গোষ্ঠীর জন্য অনুমতিগুলি উপস্থাপন করে
  • শেষ সংখ্যাটি অন্যদের জন্য অনুমতিগুলি উপস্থাপন করে

এরপরে, প্রতিটি অঙ্ক নীচে দেখানো হিসাবে একটি অনুমতি প্রতিনিধিত্ব করে:

Key: number | permission

7 | Read Write and Execute
6 | Read and Write
5 | Read and Execute
4 | Read only
3 | Write and Execute
2 | Write only
1 | Execute only
0 | None

ইনপুট

ইনপুটটি স্ট্রিং হিসাবে তিন অঙ্কের সংখ্যা হবে, যেমন:

133

অথবা

007

এটি STDIN বা ফাংশন আর্গুমেন্টের মাধ্যমে পাস করা হবে।

আউটপুট

আপনার আউটপুটটি প্রতিটি ব্যবহারকারীর, গোষ্ঠী এবং অন্যদের জন্য পৃথক অনুমতি হওয়া উচিত। আপনার অবশ্যই এই তথ্যটি প্রদর্শন করতে হবে:

User:   ddd
Group:  ddd
Others: ddd

যেখানে তিনটি স্পেস পরে রয়েছে User, দুটি স্পেস পরে Groupএবং একটি স্পেস এর পরে Others। আপনি dddঅনুমতি তথ্যের সাথে প্রতিস্থাপন ।

আপনার আউটপুট STDOUT বা ফেরত স্ট্রিং হিসাবে হতে পারে।

উদাহরণ

ইনপুট: 666

আউটপুট:

User:   Read and Write
Group:  Read and Write
Others: Read and Write

ইনপুট: 042

আউটপুট:

User:   None
Group:  Read only
Others: Write only

ইনপুট: 644

আউটপুট:

User:   Read and Write
Group:  Read only
Others: Read only

জয়লাভ

বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।


ইনপুট এর বৈশিষ্ট্য কি কি?
জোনাথন অ্যালান

@ জোনাথন অ্যালান মাত্র তিনটি সংখ্যা
বিটা ডেকে

আপনি কেবলমাত্র দশমিক পূর্ণসংখ্যা হিসাবে বলতে চান, তাই 042 42 হিসাবে প্রাপ্ত হবে?
জোনাথন অ্যালান

2
@ জোনাথন না, এটি একটি স্ট্রিং ইনপুট তাই এটি 042
বিটা ডেকে

1
ট্যাব অক্ষরের সাথে আউটপুটটি ঠিক দেখাচ্ছে, তবে কেন এটি ব্যবহার করবেন না? একটি স্ট্রিং প্যাড করতে আরও বাইট প্রয়োজন এমন ভাষাগুলি কী?
তিতাস

উত্তর:



14

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

n=>[0,1,2].map(i=>(s='User:  3Group: 68Others:58None576Read48Write476Execute475and4576only'.split(/(\d+)/))[i*2]+s[n[i]*2+1].replace(/./g,c=>' '+s[c*2])).join`
`

সম্পাদনা করুন: "ট্যাব নেই" রুলটি পূরণ করতে +1 বাইট

উদাহরণ

let f =
n=>[0,1,2].map(i=>(s='User:  3Group: 68Others:58None576Read48Write476Execute475and4576only'.split(/(\d+)/))[i*2]+s[n[i]*2+1].replace(/./g,c=>' '+s[c*2])).join`
`
console.log(f("666"));
console.log(f("042"));
console.log(f("644"));
console.log(f("137"));


আপনি অ্যারেটিকে পুনরায় সাজিয়ে কয়েকটি বাইট অর্জন করতে পারেন (এবং সম্ভবত স্ট্রিংগুলি থেকে সংখ্যাগুলি পৃথক করে)। ধারণার জন্য +1।
তিতাস

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

@ টিটাস - এর মতো কিছু 'User3Group68Others58None576Read48Write476Execute475and4576only'.split(/(\d+)/)কাজ করতে পারে। আপনার মনে কি তাই ছিল?
আর্নল্ড

আমি তাদের ভুল বুঝছিলাম; ভেবেছিল সেগুলি অক্টাল মান। :) তবে আপনার নতুন ধারণাটিও খারাপ নয়।
তিতাস

চ্যালেঞ্জ আউটপুট বর্তমানে ট্যাবগুলির পরিবর্তে ট্যাবগুলির পরিবর্তে ফাঁকা স্থান প্রয়োজন।
Mwr247

13

জিএনইউ সেড, 187 163 158 (157 + 1) বাইট

-R (ERE regexp) দিয়ে চালান । ফাইলটিতে কোনও নতুন ট্র্যাকলিং নেই।

s/(.)(.)/User:   \1\nGroup:  \2\nOthers: /g
s/[4-7]/Read &/g
s/[2367]/Write &/g
s/[1357]/Execute &/g
s/(\w) (\w+) [1-7]/\1 and \2/g
s/[1-7]/only/g
s/0/None/g

নিস পদ্ধতির কিন্তু আপনি 20 বাইট যখন আপনি যোগ ডিজিটের সরিয়ে সংরক্ষণ করতে পারবেন andঅথবা only
নিল

@ নীল সেখানে :) আপনার পরামর্শটি খুব উল্লেখযোগ্য সাশ্রয়ের জন্য অন্তর্ভুক্ত করেছে।
ফায়ারফ্লাই

1
প্রথম লাইন মাত্র হতে পারে: s/(.)(.)/User: \1\nGroup: \2\nOthers: /। পার্লের বন্দরে আরও কিছু বাইট সংরক্ষণ করা যায়, যা রয়েছে \dএবং আছে \K
নিনজালজ

@ নিনজালজ ভাল পয়েন্ট পার্লকে আমি চিনি না বলে আমি সেডের সাথে লেগে থাকব, এবং আমি নিশ্চিত যে এস /// প্রতিস্থাপনের বাইরেও আরও খাটো করে টানতে অন্য কৌশল থাকবে।
ফায়ারফ্লাই

6

সি # 214 বাইট

string h(string y){string e="Execute ",r="Read ",w="Write ",O="Only",a="and ";var z=new[]{"None",e+O,w+O,w+a+e,r+O,r+a+e,r+a+w,r+w+a+e};return$"User:   {z[y[0]-'0']}\nGroup:  {z[y[1]-'0']}\nOthers: {z[y[2]-'0']}";}

6

জেলি , 100 91 85 বাইট

প্রায় অবশ্যই গল্ফযোগ্য - 91 বাইট, কি ?! 8 মাস 6 বুদ্ধিমান বাইট!
- 1. আরও স্ট্রিং সংক্ষেপণ;
- ২. সূচকগুলি মডিউলার হওয়ার পরে পোস্ট-অর্ডিনাল হ্রাস হ্রাস করুন;
- 3. আরও ভাল tacit চেইন ব্যবহার করুন)।

আমার জন্য @ লিন চলমান স্ট্রিং সংক্ষেপণের সদয় সাহায্যে -9 বাইটস

,“£ɱ~»
Ñ
ṖK,“ and”,Ṫ
LĿK
7RBUT€Uị“ØJƓ“¥Ị£“¤/¡»Ç€“¡*g»ṭ
“ṖŒhJ"ỵd¡»ḲðJ4_⁶ẋ⁸,"j€”:ż⁹Oị¢¤Y

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

কিভাবে?

,“£ɱ~» - Link 1: pair with the string "Only"

Ñ - Link 2: call next link

ṖK,“ and”,Ṫ - Link 3: insert " and" between the last two elements of x
Ṗ           - x[:-1]
 K          - join with spaces
   “ and”   - the string " and"
          Ṫ - x[-1]
  ,      ,  - pair

LĿK - Link 4: call appropriate link and add missing spaces
L   - length
 Ŀ  - call link at that index
  K - join the result with spaces

7RBUT€Uị“ØJƓ“¥Ị£“¤/¡»Ç€“¡*g»ṭ - Link 5: construct all 8 cases
7R                            - range of 7: [1,2,3,4,5,6,7]
  B                           - binary (vectorises): [[1],[1,0],[1,1],[1,0,0],[1,0,1],[1,1,0],[1,1,1]]
   U                          - reverse (vectorises): [[1],[0,1],[1,1],[0,0,1],[1,0,1],[0,1,1],[1,1,1]]
    T€                        - indexes of truthy values for each: [[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
      U                       - reverse (vectorises): [[1],[2],[2,1],[3],[3, 1],[3,2],[3,2,1]]
        “ØJƓ“¥Ị£“¤/¡»         - list of strings: ["Execute","Write","Read"]
       ị                      - item at index (vectorises): [["Execute"],["Write"],["Write","Execute"],["Read"],["Read","Execute",["Read","Write"],["Read","Write","Execute"]]
                     ǀ       - call the previous link for each
                       “¡*g»  - the string "None"
                            ṭ - tack (Jelly is 1-based so the 8th item will be indexed as 0)

“ṖŒhJ"ỵd¡»ḲðJṚ⁶ẋ⁸,"j€”:ż⁹Oị¢¤Y - Main Link: parse input and make the result. e.g.: "042"
“ṖŒhJ"ỵd¡»                     - dictionary compression of "User Group Others"
          Ḳ                    - split at spaces -> ["User","Group","Others"]
           ð                   - dyadic chain separation, call that g (input as right)
            J                  - range of length of g -> [1,2,3]
             Ṛ                 - reverse -> [3,2,1]
              ⁶                - literal space
               ẋ               - repeat -> ["   ","  "," "]
                ⁸              - chain's left argument, g
                  "            - zip with:
                 ,             -   pair -> [["User","   "],["Group","  "],["Others"," "]]
                     ”:        - literal ':'
                   j€          - join for €ach -> ["User:   ","Group:  ","Others: "]
                            ¤  - nilad followed by link(s) as a nilad:
                        ⁹      - chain's right argument, the input string -> "042"
                         O     -   cast to ordinal (vectorises) -> [48, 52, 50]
                           ¢   -   call last link (5) as a nilad  -> ["Execute Only","Write Only","Write and Execute","Read Only","Read and Execute","Read and Write","Read Write and Execute","None"]
                          ị    -   index into (1-based & modular) -> ["None","Read Only","Write Only"]
                       ż       - zip together -> [["User:   ","None"],["Group:  ","Read Only"],["Others: ","Write Only"]]
                             Y - join with line feeds -> ["User:   ","None",'\n',"Group:  ","Read Only",'\n',"Others: ","Write Only"]
                               - implicit print:
                                             >>>User:   None
                                             >>>Group:  Read Only
                                             >>>Others: Write Only

4

অক্টাভা, 185 বাইট

@(n)fprintf('User:   %s\nGroup:  %s\nOthers: %s',{'Read Write and Execute','Read and Write','Read and Execute','Read only','Write and Execute','Write only','Execute only','None'}{56-n})

অনামী ফাংশন তৈরি করুন যা ইনপুটটিকে স্ট্রিং হিসাবে গ্রহণ করে: '042'। একটি অ্যারের তা রূপান্তর করুন: (56-'042)' = [0 4 2]। সেল অ্যারে সহ সূচী করতে এটি একাধিক সেল সূচক হিসাবে ব্যবহার করুন Read Write and Execute','Read and Write', ...। ব্যবহার fprintfআউটপুট তিনটি স্ট্রিং উপযুক্ত বিভাগগুলির সঙ্গে: User:, Group:এবং Others:

আমি দোকানে একটি উপায় খুঁজে বের চেষ্টা Execute, Write, Readপৃথক শব্দ এবং CONCATENATE প্রয়োজন, কিন্তু এটি অনেক সময় নিষ্কাশিত সাদাসিধা পদ্ধতির চেয়ে হিসাবে হিসাবে।

উদাহরণ:

1> f('000')
User:   None
Group:  None
Others: None
2> f('042')
User:   None
Group:  Read only
Others: Write only

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


2
আপনি strsplit('Read Write and Execute*Read and Write*Read and Execute*Read only*Write and Execute*Write only*Execute only*None','*')সেল অ্যারের আক্ষরিক পরিবর্তে কিছু বাইট সংরক্ষণ করতে পারেন
লুইস মেন্ডো

4

পাওয়ারশেল ভি 2 + 189 168 বাইট

[char[]]$args[0]|%{('User','Group','Others')[$i++]+":`t"+('None','Read','Write','Execute','only','and')[(0,(3,4),(2,4),(2,5,3),(1,4),(1,5,3),(1,5,2),(1,2,5,3))[$_-48]]}

ইনপুটটির মাধ্যমে অ্যারে $args[0]হিসাবে লুপ হয় char। প্রতিটি পুনরাবৃত্তির সঙ্গে একটি অ্যারের মধ্যে আমরা সূচক $i++(ডিফল্টে 0নির্বাচন করুন) থেকে User, Groupঅথবা Others, CONCATENATE করে একটি কোলন এবং একটি ট্যাব, এবং CONCATENATE সঙ্গে যে অন্য অ্যারের সূচক সঙ্গে।

এই যাদু। আমরা যথাযথ শব্দটিকে এস এর অ্যারে হিসাবে বেছে বেছে charএকটি intএবং বিয়োগ 48(যেমন, ASCII 48( "0") রূপান্তরিত 0) এ স্পষ্টভাবে কাস্ট করি int। সেই অ্যারে পরবর্তীকালে অ্যারেতে সূচক হিসাবে ব্যবহৃত হয় 'None','Read','Write','Execute','only','and'। যেহেতু ডিফল্ট $ofs(আউটপুট ফিল্ড বিভাজক) একটি স্থান, এটি সঠিকভাবে স্ট্রিংযুক্ত হয়ে গেলে অ্যারের উপাদানগুলির মধ্যে স্পেসগুলি সন্নিবেশ করায় (যা ঘটে যখন এটি বাম দিকে সংহত হয়)।

এই তিনটি স্ট্রিং পাইপলাইনে রেখে গেছে, এবং Write-Outputপ্রোগ্রামের সমাপ্তির পরে অন্তর্নিহিত মাধ্যমে আউটপুট ঘটে।

উদাহরণ

PS C:\Tools\Scripts\golfing> .\decode-the-chmod.ps1 '123'
User:   Execute only
Group:  Write only
Others: Write and Execute

3

খড় , 193 বাইট

((01234567)((None)(Execute only)(Write only)(Write and Execute)(Read only)(Read and Execute)(Read and Write)(Read Write and Execute)))::~<:{-¢(User:   ),+>
>}:{-¢(Group:  ),+>
>}-¢(Others: ),+>

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

প্রথম স্ট্যাকের 3 বার রূপান্তর টেবিলটি চাপুন, দ্বিতীয় স্ট্যাকের দিকে স্যুইচ করুন, কথোপকথন সারণী এবং মুদ্রণ ব্যবহার করে প্রতিটি নম্বর রূপান্তর করুন।


2

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

s=zip(words"7654 6 7632 753 7531 0 421")(words"Read and Write and Execute None only")
m c=mapM_(\(x,y)->putStrLn(x++unwords[b|(a,b)<-s,elem y a]))$zip["User:   ","Group:  ","Others: "]c

উদাহরণ:

Prelude> :r
[1 of 1] Compiling Main             ( decCh.hs, interpreted )
Ok, modules loaded: Main.
*Main> m "654"
User:   Read and Write
Group:  Read and Execute
Others: Read only

শুধুমাত্র প্রিলিড ব্যবহৃত। আমি কি এটা ঠিক করছি?

Ungolfed:

s = zip (words "7654 6 7632 753 7531 0 421")
        (words "Read and Write and Execute None only")

ps y = unwords [b|(a,b)<-s,elem y a] -- build permissions string
pp (x,y) = putStrLn $ x ++ ps y -- print user + permission

m c =   let up = zip ["User:   ","Group:  ","Others: "] c -- pair user and permission
        in mapM_ pp up --print each

2

পাইথন 2, 190 185 বাইট

def f(i):
 r,w,a,x,o,g="Read ","Write ","and ","Execute ","only",["User:  ","Group: ","Others:"];p=["None",x+o,w+o,w+a+x,r+o,r+a+x,r+a+w,r+w+a+x]
 for z in 0,1,2:print g[z],p[int(i[z])]

এক্সিকিউট বা লিখনটি যদি লাইনের শেষে থাকে তবে আমি অনুমান করি যে এটি অনুমোদিত নয়।

সম্পাদনা সংরক্ষিত 0,1,2 সীমার (3) পরিবর্তন এবং আমার লিনাক্স ল্যাপটপ পরিবর্তে আমার উইন্ডোজ এক বাইট গণনা চেক করে 5 বাইট (\ N = \ R \ N বা অন্যান্য উপায় বৃত্তাকার। আমি যা মনে রাখা না পারে)।


2

পাইথন 2, 240 239 238 237 228 বাইট

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

i=0
def a(b):
 for d in 4,2,1:
    if b&d:yield('Execute','Write','Read')[d/2]
for k in raw_input():
 b,q=list(a(int(k))),' and';e=len(b)
 if e:b[~e/2]+=(' only',q,q)[e-1]
 print'UGOsrteohrue:pr :s  :'[i::3],' '.join(b)or None;i+=1

পিপিসিজিতে স্বাগতম, এবং প্রথম প্রথম উত্তর!
ETH প্রোডাকশনস

আপনার কোডটি পড়ার পরে আমি নির্লজ্জভাবে আমার পাইথন 2 উত্তরটিতে পরিসীমা (3) প্রতিস্থাপন করেছি। চমৎকার উত্তর. +1
এলপেড্রো

2

পিএইচপি, 169 159 বাইট

foreach([User,Group,Others]as$i=>$u){echo"
$u: ";for($n=[5,33,34,66,35,67,131,531][$i]];$n;$n>>=3)echo["and",Execute,Write,Read,only,None][$n&7]," ";}

স্ট্রিং কমান্ড লাইন আর্গুমেন্ট হিসাবে নেয়: php -r '<code>' <argument>,
একটি trailing এক পরিবর্তে একটি নেতৃস্থানীয় সম্পর্কে newline ছাপে

আমার বাগগুলি নির্দেশ করার জন্য - এবং এর জন্য জার্গকে ধন্যবাদ \t

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

নতুন সীমাবদ্ধতার সাথে: (ট্যাব অক্ষর নিষিদ্ধ)

foreach(['User:  ','Group: ','Others:']as$i=>$u){echo"
$u";for($n=[5,33,34,66,35,67,131,531][$argv[1][$i]];$n;$n>>=3)echo' ',['and',Read,Write,Execute,only,None][$n&7];}

এটি এর চেয়ে 1 বাইট কম str_pad, কারণ অতিরিক্ত খালি এটির প্রয়োজন হয়।

ভাঙ্গন

foreach([User,Group,Others]as$i=>$u)
{
    echo"\n$u:\t";                      // print newline, who, blanks
    for($n=[5,33,34,66,35,67,131,531]   // octal values for words indexes
        [$argv[1][$i]]                  // (last word=highest digit)
        ;$n;$n>>=3)                     // while value has bits left
        echo['and',Execute,Write,Read,only,None][$n&7]," "; // print that word
}

এর জন্য অ্যারে তৈরি করতে $n, এটি ব্যবহার করুন:

$b=[[5],[1,4],[2,4],[2,0,1],[3,4],[3,0,1],[3,0,2],[3,2,0,1]];
foreach($b as$i=>$a){for($v=$j=0;$a;$j+=3)$v+=array_shift($a)<<$j;echo"$v,";}

1
foreach ([ 'ব্যবহারকারী', 'গ্রুপের', 'অন্যরা'] $ হিসাবে আমি => $ U) {প্রতিধ্বনি "\\ এন ইউ $: \\ টি"; কিছু বাইট সংরক্ষণ করে এবং 3,4,6 এর আউটপুটটি ভুল
জার্গ হালসারম্যান

1
এটি সঠিক আদেশ [5,33,34,66,35,67,131,531] সুন্দর ধারণা
Jörg Hülsermann

আমি ব্যবহারকারীকে ভুলে গেছি ব্যবহারকারীর জন্য এক্সাম্পল পরবর্তী 6 টি বাইট সংরক্ষণ করে যা আপনি জাভাস্ক্রিপ্টকে পরাজিত করতে চান
জার্গ হেলসারম্যান

@ জার্গহালসারম্যান: আমি যাইহোক "" t "অবলম্বন করতে চলেছিলাম; ধন্যবাদ। +1 তার জন্য :) ভাল নজর 33!
তিতাস

1
346 এর জন্য আমাদের আউটপুট ব্যবহারকারী: পড়ুন এবং লিখুন গ্রুপ: কেবল
অন্যকে

2

বাশ - 221 213 বাইট

GNU bash, version 4.3.46

l=("User:   " "Group:  " "Others: ")
o=\ only;a=" and ";x=Execute;w=Write;r=Read
b=(None "$x$o" "$w$o" "$w$a$x" "$r$o" "$r$a$x" "$r$a$w" "$r $w$a$x")
for c in `echo $1|grep -o .`;{ echo "${l[$((z++))]}${b[$c]}";}

অস্পষ্ট যদি এটি আরও ঘনীভূত করা যায় তবে কমপক্ষে মৌলিকভাবে এখানে দৃষ্টিভঙ্গিটি পরিবর্তন না করে (ইনপুট বিভক্ত করা এবং এটির ${b}সাথে সম্পর্কিত স্ট্রিংগুলিকে সূচক হিসাবে ব্যবহার করা )।


1
এটি \ onlyপ্রসারিত ইনলাইন সহ ছোট । grep -o .<<<$1এর চেয়ে খাটো echo $1|grep -o ., তবে স্টিডিনের সাথে ইনপুট পড়া while read -n1 cভাল। অ্যারে সূচকগুলিতে বাশগুলিতে পাটিগণিতের প্রসঙ্গ রয়েছে, তাই ${l[z++]}কাজ করে। lএকটি স্ট্রিং হিসাবে সংক্ষিপ্ত হবে, যা অ্যাক্সেস করা হবে ${l:z++*8:8}(অফসেট এবং দৈর্ঘ্যে পাটিগণিত প্রসঙ্গ আছে)। পুরো মোডটি পড়ে c"ব্যবহারকারী:" প্রসারিত করে, ইনলাইন এবং প্যারামিটারের বিস্তৃততার ন্যায়বিচারের ব্যবহার করে অন্য একটি বাইট শ্যাভ করা যেতে পারে ।
নিনজালজ

1
এর শেষ ফলাফলের জন্য: a=" and ";x=Execute;w=Write;r=Read;b=(None $x\ only $w\ only "$w$a$x" $r\ only "$r$a$x" "$r$a$w" "$r $w$a$x");read c;echo "User: ${b[${c%??}]}\nGroup: ${b[${c:1:1}]}\nOthers: ${b[${c:2}]}"(আক্ষরিক নতুন লাইনের সাথে replace n প্রতিস্থাপন করুন)।
নিনজালজ

1

জাভা 7, 300 284 বাইট

String c(String s){char[]a=s.toCharArray();return"User:   "+f(a[0])+"Group:  "+f(a[1])+"Others: "+f(a[2]);}String f(int i){return new String[]{"None","Execute only","Write only","Write and Execute","Read only","Read and Execute","Read and Write","Read Write and Execute"}[i%48]+"\n";}

আপাতত সরাসরি যোগাযোগ শব্দগুলির পুনঃব্যবহারের জন্য আরও সাধারণ পদ্ধতির সাথে আসতে চেষ্টা করবে।

অবহেলিত ও পরীক্ষার কেস:

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

class M{
  static String c(String s){
    char[] a = s.toCharArray();
    return "User:   " + f(a[0]) + "Group:  " + f(a[1]) + "Others: " + f(a[2]);
  }

  static String f(int i){
    return new String[]{ "None", "Execute only", "Write only", "Write and Execute", "Read only", "Read and Execute", "Read and Write", "Read Write and Execute" }
      [i % 48] + "\n";
  }

  public static void main(String[] a){
    System.out.println(c("666"));
    System.out.println(c("042"));
    System.out.println(c("644"));
  }
}

আউটপুট:

User:   Read and Write
Group:  Read and Write
Others: Read and Write

User:   None
Group:  Read only
Others: Write only

User:   Read and Write
Group:  Read only
Others: Read only

1

গ্রোভি, 217 207 205 বাইট

def c(m){def i=0,e='Execute',w='Write',r='Read',o=' only',a=' and ';m.each{println(['User:   ','Group:  ','Others: '][i++]+['None',"$e$o","$w$o","$w$a$e","$r$o","$r$a$e","$r$a$w","$r $w$a$e"][it as int])}}

ungolfed:

def c(m) {
  def i=0,e='Execute',w='Write',r='Read',o=' only',a=' and ';
  m.each{
    println(['User:   ','Group:  ','Others: '][i++]+['None',"$e$o","$w$o","$w$a$e","$r$o","$r$a$e","$r$a$w","$r $w$a$e"][it as int])
  }
}

1

গণিত, 211 বাইট

{r,w,e,o,a}={"Read ","Write ","Execute ","only ","and "};""<>Transpose@{{"User:   ","Group:  ","Others: "},"None"[{e,o},{w,o},{w,a,e},{r,o},{r,a,e},{r,a,w},{r,w,a,e}][[#]]&/@IntegerDigits[#,10,3],"\n"&~Array~3}&

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

IntegerDigits[#,10,3]ইনপুটটির তিনটি সংখ্যা দেয় (অগ্রণী শূন্যগুলি থাকলেও)। প্রতিটি অঙ্ক "ফাংশন" এর আর্গুমেন্ট নির্দেশ করে

"None"[{e,o},{w,o},{w,a,e},{r,o},{r,a,e},{r,a,w},{r,w,a,e}]

0 এর সাথে ফাংশনটির নামটি ইঙ্গিত করে। ""<>একটি তালিকায় সমস্ত স্ট্রিং সংযুক্ত করে (তালিকার)। "\n"&~Array~3তিনটি নতুন লাইন তৈরি করে।


আমি কেবল লক্ষ্য করেছি যে আমার পাইথন 2 উত্তরটি আপনার প্রায় একই, এমনকি একই পরিবর্তনশীল নামগুলি ব্যবহার করে। আমি পোস্ট করার আগে সত্যই আপনার দেখিনি!
এলপেড্রো

1
কোন চিন্তা করো না! আমি ভেরিয়েবলের নামগুলির
গ্রেগ মার্টিন

আপনি ঠিক বলেছেন অনুমান। পরিবর্তনশীল নামগুলি কিছুটা পূর্বাভাসযোগ্য ছিল ☺
এলপেড্রো

বিটিডব্লু, +1 কারণ আমরা একইভাবে চিন্তা করি :-)
এলপেড্রো

1
বিটিডব্লিউ, আমি ম্যাথামেটিকাকে জানি না তবে আমি মনে করি আপনি কেবল "কেবল" থেকে স্থান সরিয়ে একটি বাইট হারাতে সক্ষম হতে পারেন। এটি সর্বদা একটি লাইনের শেষে থাকবে তাই পিছনের জায়গার প্রয়োজন হবে না।
এলপেড্রো

1

জাভা 7, 278

Golfed:

String f(String i){String o="";for(int n=0;n<i.length();)o+=(n<1?"User:   ":n<2?"Group:  ":"Others: ")+new String[]{"None","Execute only","Write only","Write and Execute","Read only","Read and Execute","Read and Write","Read Write and Execute"}[i.charAt(n++)-48]+"\n";return o;}

Ungolfed:

  String f(String i) {
    String o = "";
    for (int n = 0; n < i.length();)
      o += (n < 1 ? "User:   " : n < 2 ? "Group:  " : "Others: ")
        + new String[] { "None", "Execute only", "Write only", "Write and Execute", "Read only", "Read and Execute",
            "Read and Write", "Read Write and Execute" }[i.charAt(n++) - 48]
        + "\n";
    return o;
  }

আউটপুট:

User:   Read and Write
Group:  Read and Write
Others: Read and Write

User:   None
Group:  Read only
Others: Write only

User:   Read and Write
Group:  Read only
Others: Read only

1

পাইথন 3.5, 3.6 - 235 232 228 216 বাইট

(সমস্ত পাইথন 3.x এ কাজ করা উচিত)

সুতরাং ইনপুটটি এখানে STDIN এ রয়েছে (একটি আমদানি সংরক্ষণ করে।)।

a=input()
r=range
for i in r(3):
 p=int(a[i]);x=[["Read","Write","Execute"][j]for j in r(3)if 4>>j&p]
 if x[1:]:x[-1:-1]="and",
 if len(x)==1:x+="only",
 print(["User:  ","Group: ","Others:"][i]," ".join(x)or"None")

টিপলস ব্যবহার করা, সম্ভাব্য জায়গাগুলি বাদ দেওয়া এবং অপারেটর অগ্রাধিকার যেখানে আপনি সাধারণত আপনার উদ্দেশ্যগুলি পরিষ্কার করার জন্য প্রথম বন্ধনী স্থাপন করেন।

নমুনা ব্যবহার:

$ echo -n '666' | python3 golf2.py
User:   Read and Write
Group:  Read and Write
Others: Read and Write
$ echo -n '644' | python3 golf2.py
User:   Read and Write
Group:  Read only
Others: Read only
$ echo '042' | python3 golf2.py
User:   None
Group:  Read only
Others: Write only
$ echo '123' | python3 golf2.py
User:   Execute only
Group:  Write only
Others: Write and Execute
$ echo -n '777' | python3 golf2.py
User:   Read Write and Execute
Group:  Read Write and Execute
Others: Read Write and Execute

আন golfed:

input_perms = list(map(int, input()))

entities = ["User", "Group", "Others"]
perm_names = ["Read", "Write", "Execute"]

for i in range(3):
    bits = input_perms[i]
    perms = [
        perm_names[j]
        for j in range(3)
        if (1 << (2-j)) & bits
    ]

    if len(perms) > 1:
        perms.insert(-1, "and")
    if len(perms) == 1:
        perms.append("only")

    print("{:7} {}".format(
        entities[i]+":",
        " ".join(perms) or "None"
    ))

1

ব্যাচ, 280 বাইট

@echo off
set/pc=
call:l "User:   " %c:~0,1%
call:l "Group:  " %c:~1,1%
call:l "Others: " %c:~2,1%
exit/b
:l
for %%s in (None.0 Execute.1 Write.2 "Write and Execute.3" Read.4 "Read and Execute.5" "Read and Write.6" "Read Write and Execute.7") do if %%~xs==.%2 echo %~1%%~ns

স্ট্রিংগুলিকে হার্ডকডিং 47 টি বাইটগুলি একসাথে টুকরো টুকরো করার চেয়ে কম ছিল। ট্যাবগুলি আইনী হলে 267 বাইট হত।


1

সি # 307 241 210 বাইট

string X(string s){var z="User: ,Group: ,Others:,5,34,14,123,04,023,021,0123,Read,Write,and,Execute,only,None".Split(',');return string.Join("\n",s.Zip(z,(a,b)=>b+z[a-45].Aggregate("",(x,y)=>x+" "+z[y-37])));}

বিন্যাসকৃত

string X(string s)
{
    var z = "User:  ,Group: ,Others:,5,34,14,123,04,023,021,0123,Read,Write,and,Execute,only,None".Split(',');
    return string.Join("\n", s.Zip(z, (a, b) => b + z[a - 45].Aggregate("", (x, y) => x + " " + z[y - 37])));
}

1

সি #, 322 337 348 বাইট

এটি নিশ্চিত যে সংক্ষিপ্ততম সংস্করণ নয়, তবে আমি বিটওয়াইজ অপারেটরগুলি ব্যবহার করে এই সমস্যাটি সমাধান করার চেষ্টা করেছি যেহেতু chmodমানগুলি আসলে বিট পতাকা রয়েছে are এছাড়াও সি # সম্ভবত সেরা গল্ফিং ভাষা নয়: ডি

string P(string s){Func<int,string>X=p=>{var a=new List<string>();if((p&4)>0)a.Add("Read");if((p&2)>0)a.Add("Write");if((p&1)>0)a.Add("Execute");return a.Count>1?string.Join(" ",a.Take(a.Count-1))+" and "+a.Last():a.Count>0?a.First()+" only":"none";};return string.Join("\n",(new[]{"User:   ","Group:  ","Others: "}).Select((c,i)=>c+X(s[i]-'0')));}

অবারিত: (মন্তব্য সহ)

string P(string s)
{
    // Function that determines the permissions represented by a single digit (e.g. 4 => "Read only")
    Func<int, string> X = p => 
    {
        var a = new List<string>();         // temporary storage for set permissions
        if ((p & 4) > 0) a.Add("Read");     // Read bit set
        if ((p & 2) > 0) a.Add("Write");    // Write bit set
        if ((p & 1) > 0) a.Add("Execute");  // Execute bit set

        // actually just Output formatting ... Takes a lot of bytes *grr*
        return a.Count > 1 
            ? string.Join(" ", a.Take(a.Count - 1)) + " and " + a.Last() 
            : a.Count > 0 
                ? a.First() + " only" 
                : "none";
    };

    // Actual result:
    return string.Join("\n", (new[] { "User:   ", "Group:  ", "Others: " })
        .Select((c, i) => c + X(s[i] - '0'))); // Map "User, .." to its permissions by using above function
}

এটি আমার প্রথমবারের মতো কোড গল্ফিং, সুতরাং দয়া করে আমাকে বলুন, আমি যদি কোনও ভুল করি তবে :)

সম্পাদনা 1:

(একেবারে শেষে) দ্বারা প্রতিস্থাপন s[i]-'0'করে s[i]&7এবং তালিকা গণনাটিকে ভেরিয়েবলের মধ্যে সংরক্ষণ করে কিছু বাইট সংরক্ষণ করেছেন:

string P(string s){Func<int,string>X=p=>{var a=new List<string>();if((p&4)>0)a.Add("Read");if((p&2)>0)a.Add("Write");if((p&1)>0)a.Add("Execute");var c=a.Count;return c>1?string.Join(" ",a.Take(c-1))+" and "+a.Last():c>0?a[0]+" only":"none";};return string.Join("\n",(new[]{"User:   ","Group:  ","Others: "}).Select((c,i)=>c+X(s[i]&7)));}

সম্পাদনা 2:

ল্যাম্বডা এক্সপ্রেশনে পরিবর্তিত হয়েছে:

s=>{Func<int,string>X=p=>{var a=new List<string>();if((p&4)>0)a.Add("Read");if((p&2)>0)a.Add("Write");if((p&1)>0)a.Add("Execute");var c=a.Count;return c>1?string.Join(" ",a.Take(c-1))+" and "+a.Last():c>0?a[0]+" only":"none";};return string.Join("\n",(new[]{"User:   ","Group:  ","Others: "}).Select((c,i)=>c+X(s[i]&7)));}

1

জাভাস্ক্রিপ্ট, 213 209 208 188 186 বাইট

function(d){a=" and ";r="Read";w="Write";e="Execute";v=";";o=" only";c=["None",e+o,w+o,w+a+e,r+o,r+a+e,r+a+w,r+" "+w+a+e];return"User: "+c[d[0]]+"\nGroup: "+c[d[1]]+"\nOthers: "+c[d[2]]}

20 বাট সংরক্ষণ দাদাকে ধন্যবাদ!


3
আমার ভুল হতে পারে তবে আপনার অ্যারেটি কি বিপরীত ক্রমে থাকা উচিত নয়? যদি আমি বি ("000") কল করি তবে এটি "রিড রাইট এন্ড এক্সিকিউট" রিটার্ন দেয় এবং কেউ "কিছুই না" আশা করতে পারে ...
দাদা

এবং আমি নিশ্চিত যে এটি আরও গল্ফ হতে পারে। উদাহরণস্বরূপ, একজন 191 বাইট সংস্করণ: function b(p){a=" and ";r="Read";w="Write";e="Execute";v=";";o=" only";c=["None",e+o,w+o,w+a+e,r+o,r+a+e,r+a+w,r+" "+w+a+e];return"User: "+c[p[0]]+"\nGroup: "+c[p[1]]+"\nOthers: "+c[p[2]]}
দাদা

1

ভিজ্যুয়াল বেসিক, 606 বাইট

imports System.Collections
module h
sub main()
Dim i As String=console.readline()
Dim s=new Stack(new String(){"Others: ","Group:  ","User:   "})
for each j as Char in i
dim t=new Stack()
if((asc(j) MOD 2)=1)then t.push("Execute")
if(asc(j)=50 or asc(j)=51 or asc(j)=54 or asc(j)=55)then t.push("Write")
if(asc(J)>51)then t.push("Read")
if t.count=3 then
w(s.pop+t.pop+" "+t.pop+" and "+t.pop)
else
if t.count=2 then
w(s.pop+t.pop+" and "+t.pop)
else
if t.count=0 then
w(s.pop+"None")
else
w(s.pop+t.pop+" only")
end if
end if
end if
next
end sub
sub w(s As String)
console.writeline(s)
end sub
end module

1
পিপিসিজিতে আপনাকে স্বাগতম! সুন্দর প্রথম উত্তর বিটিডাব্লু :)
বেটা ক্ষয়

1

ক্রিস্টাল, 200 194 বাইট

def m(y)y=y.chars.map &.to_i
a=" and "
o=" only"
r="Read"
w="Write"
x="Execute"
c=["None",x+o,w+o,w+a+x,r+o,r+a+x,r+a+w,r+" "+w+a+x]
"User:   "+c[y[0]]+"
Group:  "+c[y[1]]+"
Others: "+c[y[2]]end

প্রদত্ত অষ্টাল-অনুক্রমের জন্য স্ট্রিং হিসাবে ফলাফলকে স্ট্রিং প্রদান করে returns উদাহরণ: m("670"): ফলাফল User: Read and Write\nGroup: Read Write and Execute\nOthers: None

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


0

সি #, 371 বাইট

public String[] a = {"none","Execute only","Write only","Write and Execute","Read only","Read and Execute","Read and Write","Read Write and Execute"};
public String pA(int i){return a[i];}
public int d(int n,int i){
  n=n/Math.pow(10,i);
  return n%=10;
}
public void main(int i){
  Console.Write("User:\t{0}\nGroup:\t{1},Others:\t{2}",pA(d(i,0)),pA(d(i,1)),pA(d(i,2));
}

4
এটি কোড-গল্ফ, সুতরাং আপনাকে অবশ্যই আপনার কোডটি গল্ফ করতে হবে। এছাড়াও, ভাষার নাম এবং বাইকাউন্টের সাথে একটি শিরোনাম যুক্ত করুন।
টাকসক্রাফটিং

আমি আপনার বাইট গণনা যোগ করেছি, যা আপনার স্কোর। আপনার জয়ের জন্য যতটা সম্ভব আপনার স্কোরটি কমিয়ে নেওয়া দরকার
বিটা ডিকায়

উদাহরণস্বরূপ, আপনি প্রতিটি ক্রিয়াকলাপের সমস্ত অপ্রয়োজনীয় সাদা স্থান থেকে মুক্তি পেয়েছেন
বিটা ডেকে

1
@ বেটাডেকে ধন্যবাদ, আমি এই সম্প্রদায়টিতে নতুন এবং আমি মনে করি পরিবর্তে পিএইচপি ব্যবহার করা আরও ভাল যা আরও সংযোগ কোডগুলির দিকে পরিচালিত করতে পারে।
আলিরিজা তাবতাবেইয়ান

1
@ আলিরেজা এটি একটি ভাল ধারণা। যদিও এই সাইটে, আমরা জাভা এবং সি এর সংক্ষিপ্ত উত্তর দেখতে পছন্দ করি # :)
বিটা ডেকে

0

পাইথন 3.5 - 370 294 243 বাইট

Golfed:

import sys
a=lambda o: [print(('User:  ','Group: ','Others:')[n],('None','Execute only','Write only','Write and Execute','Read only','Read and Execute','Read and Write','Read Write and Execute')[int(o[n])]) for n in range(0,3)]
a(sys.argv[1])

আকার চেক:

$ du -b OctalToHuman.py 
243     OctalToHuman.py

আন golfed:

#!/usr/bin/env python3
from sys import argv as ARGS

types = ('User:  ', 'Group: ', 'Others:')
perms = ('None','Execute only','Write only','Write and Execute','Read only','Read and Execute','Read and Write','Read Write and Execute')

def convert(octal_string):
    for n in range(0,3):
        print(types[n], perms[int(octal_string[n])])

if __name__ == '__main__':
    convert(ARGS[1])

নমুনা আউটপুট:

$ python ./OctalToHuman.py 666
User:   Read and Write
Group:  Read and Write
Others: Read and Write

$ python ./OctalToHuman.py 042
User:   None
Group:  Read only
Others: Write only

$ python ./OctalToHuman.py 644
User:   Read and Write
Group:  Read only
Others: Read only

এটি জয়ের মানদণ্ডের জন্য গুরুতর প্রতিযোগী নয়। বিজয়ী মানদণ্ডের জন্য তাদের স্কোরকে অনুকূল করে তোলার জন্য আমাদের সমস্ত জবাব প্রয়োজন (উদাহরণস্বরূপ, কোড গল্ফ চ্যালেঞ্জগুলিতে যেমন একটি, প্রোগ্রামের বাইট গণনা হ্রাস করার জন্য সাবমিশনগুলি অবশ্যই একটি গুরুতর প্রচেষ্টা করতে হবে)।
মেগো

আপনি মুছে ফেলা import sysএবং প্রোগ্রামটিকে একটি বেনাম ফাংশন ( lambda o:...) তৈরি করে বেশ কয়েকটি বাইট সংরক্ষণ করতে পারেন ।
NoOneIsEre

0

এফ #, 204 203 বাইট

আমার প্রথম গল্ফ, সুতরাং দয়া করে কোনও ভুল ক্ষমা করুন;)
গল্ফযুক্ত সংস্করণ ( গোলাপিফ্লোয়েডএক্স 33 এর উত্তরের ভিত্তিতে 1: 1 ):

fun(y:string)->let e,r,w,o,a="Execute ","Read ","Write ","only","and ";let z=["None";e+o;w+o;w+a+e;r+o;r+a+e;r+a+w;r+w+a+e;];let(!-)a=z.[int y.[a]-48];sprintf"User:   %s\nGroup:  %s\nOthers: %s"!-0!-1!-2

অবারিত সংস্করণ:

fun (y : string) ->
    let e, r, w, o, a = "Execute ", "Read ", "Write ", "only", "and "
    let z = [
                "None";
                e + o;
                w + o;
                w + a + e;
                r + o;
                r + a + e;
                r + a + w;
                r + w + a + e;
            ]
    let (!-) a = z.[int(y.[a]) - 48]
    sprintf "User:   %s\nGroup:  %s\nOthers: %s" !-0 !-1 !-2

ব্যবহারের উদাহরণ:

let k =  ...... // function definition goes here

printf"%s"<|k"755"
printf"%s"<|k"042"
// etc ...


এটি কেবলমাত্র চেক করার জন্যই, আমি গোলাপিফ্লোয়েডএক্স 33 এর উত্তর 'উন্নত' করতে পারছিলাম কিনা - আমি অ্যালগরিদমের কোনও ক্রেডিট নিই না


0

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

foreach([User,Group,Others]as$i=>$u){$a=[];foreach([Read,Write,Execute]as$k=>$s)if($argv[1][$i]&4>>$k)$a[]=$s;$a[]=($x=array_pop($a))?$a?"and $x":"$x only":None;echo str_pad("\n$u:",9).join(" ",$a);}

পিএইচপি, 189 বাইট \ টি সহ

foreach([User,Group,Others]as$i=>$u){$a=[];foreach([Read,Write,Execute]as$k=>$s)if($argv[1][$i]&4>>$k)$a[]=$s;$a[]=($x=array_pop($a))?$a?"and $x":"$x only":None;echo"\n$u:\t".join(" ",$a);}

আরে, আপনার ট্যাবগুলির পরিবর্তে স্পেস ব্যবহার করা উচিত
বিটা ডিকায়

এই ক্ষেত্রে টিআর_আরপিট ("", 3- $ i) বা স্ট্রিংপ্যাড ("", 3- $ i, "") এর মতো দেখতে কিন্তু আমার ধারণার সাথে কিছু আসে যায় না আমার জয়ের কোন সুযোগ নেই f যদি আমার নেওয়া উচিত আর একটি স্পেস cs.tut.fi/~jkorpela/chars/spaces.html
Jörg Hülsermann

1
13 + 34 বাইট সংরক্ষণ করতে। দীর্ঘ সংস্করণে: (-9) এর echo str_pad("$u:",8)পরিবর্তে ব্যবহার echo"$u:".str_repeat(" ",3-$i)করুন; এটি $i=>অপ্রচলিত (-4) সরবরাহ করে। ব্যবহার করুন: উভয় সংস্করণে $a[$z-1]="and $a[$z-1]";পরিবর্তে {$a[]=$a[$z-1];$a[$z-1]="and";}এবং (-7) else$a[]=$a?Only:None;পরিবর্তে elseif($z<1)$a[]=None;else$a[]=Only;(-14)। ঘুরুন if(1<$z=count($a))$a[$z-1]="and $a[$z-1]";else$a[]=$a?Only:None;মধ্যে if($x=array_pop($a))$a[]=$a?"and $x":"$x Only";else$a[]=None;(-3) এবং তারপর মধ্যে $a[]=($x=array_pop($a))?$a?"and $x":"$x Only":None;(-10)
তিতাস

@ টিটাস প্রতিধ্বনিত ত্র_প্যাড ("$ u:", 8), $ a [$ z-1] = "এবং $ এ [$ জেড -1]" ;, অন্য $ এ [] = $ এ? কেবল: কিছুই নয়; সম্পন্ন $ i => অপ্রচলিত আমি তখন করতে পারি না $ m = $ আরজিভি [1] [$ i] প্রয়োজনীয়। বাকি জন্য আমি প্রথমে অন্যভাবে চেষ্টা করব।
ইনপুটটির

1
আরো ধারনা: if(4&$m=$argv[1][$i])পরিবর্তে $m=$argv[1][$i];if(4&$m)(-3) বা প্রতিস্থাপন $m=;if();if();if();একটি লুপ সঙ্গে foreach([Read,Write,Execute]as$k=>$s)if($argv[1][$i]&4>>$k)$a[]=$s;(-7)
তিতাস

0

পাইথন 3, 191 বাইট

def d(n):a,b,c,d,e=' and ',' only',"Execute","Write","Read";l=["None",c+b,d+b,d+a+c,e+b,e+a+c,e+a+d,e+" "+d+a+c];y,u,i=map(int,n);return"User:   %s\nGroup:  %s\nOthers: %s\n"%(l[y],l[u],l[i])

ungolfed

def d(n):
    a,b,c,d,e=' and ',' only',"Execute","Write","Read"
    l=["None",c+b,d+b,d+a+c,e+b,e+a+c,e+a+d,e+" "+d+a+c]
    y,u,i=map(int,n)
    return"User:   %s\nGroup:  %s\nOthers: %s\n"%(l[y],l[u],l[i])

1
পিপিসিজিতে আপনাকে স্বাগতম! প্রথম প্রথম পোস্ট!
Rɪᴋᴇʀ

হুম, আমি খুব কৌতূহলী ছিলাম যে আমি যখন ১৯১১ পেয়েছিলাম তখন মডারেটর কীভাবে 151 বাইটস পেল: ডি ভুল হয়? সম্পাদনাগুলি পরীক্ষা করুন
আলেকজান্ডার স্মারনভ

দুঃখিত, আমি ছিল। আমি সম্পাদনাটি টাইপ করেছি। এখনই স্থির।
Rɪᴋᴇʀ

0

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

a=>`User:  ${(b=[' None',(c=' Execute')+(d=' only'),(e=' Write')+d,f=e+(g=' and')+c,(h=' Read')+d,h+g+c,h+g+e,h+f])[a[0]]}\nGroup: ${b[a[1]]}\nOthers:`+b[a[2]]

উদাহরণ:

(a=>`User:  ${(b=[' None',(c=' Execute')+(d=' only'),(e=' Write')+d,f=e+(g=' and')+c,(h=' Read')+d,h+g+c,h+g+e,h+f])[a[0]]}\nGroup: ${b[a[1]]}\nOthers:`+b[a[2]])("042")
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.