কেস পারমিটেশন


27

আপনি যখন বড় হাতের এবং ছোট হাতের প্রতিটি ক্রমান্বয়ে উত্পন্ন করতে সক্ষম হন তখন সংবেদনশীলতার সাথে বিষয়গুলির কে কে তুলনা করতে হবে? কেউ না! এটাই উত্তর। কেউ করে নি. আপনার কাজ এই কৃতিত্ব অর্জন করা; প্রদত্ত ইনপুটটির জন্য বড় হাতের / ছোট হাতের সমস্ত সম্ভাব্য ক্রমশক্তি তৈরি করুন।

ইনপুট

মুদ্রণযোগ্য স্ট্যান্ডার্ড আসকি অক্ষরের একটি স্ট্রিং। ইনপুটটি সমস্ত ছোট হাতের মতো ধরে নেওয়া উচিত নয়। ইনপুট সর্বদা কমপক্ষে একটি চরিত্র হতে পারে।

আউটপুট

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

উদাহরণ

a1a
['a1a', 'a1A', 'A1a', 'A1A']

abc
['abc', 'abC', 'aBc', 'aBC', 'Abc', 'AbC', 'ABc', 'ABC']

Hi!
['hi!', 'hI!', 'Hi!', 'HI!'] 

স্কোরিং

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

মজাদার অতিরিক্ত হিসাবে দেখুন বর্ধিত আসকি চরিত্রগুলি পরিচালনা করতে আরও কত বেশি প্রচেষ্টা লাগবে, এখানে একটি অতিরিক্ত পরীক্ষার কেস:

ž1a -> ['ž1a', 'ž1A', 'Ž1a', 'Ž1A']

(আপনার প্রোগ্রাম এটি সমর্থন করার প্রয়োজন নেই)


10
আকর্ষণীয় ইউনিকোড পরীক্ষার কেস: Σ['Σ', 'σ', 'ς']
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

আমরা কি স্ট্রিংয়ের পরিবর্তে অক্ষরের একটি তালিকা ব্যবহার করতে পারি? উদাহরণস্বরূপ, যদি Hi!দেওয়া হয় {('H', 'i', '!'), ('h', 'I', '!'), ('h', 'i', '!'), ('H', 'I', '!')}তবে তা গ্রহণযোগ্য হবে?
ডিজেএমসিএমহেম

@DrGreenEggsandHamDJ অক্ষরের তালিকা ডিফল্টরূপে অনুমোদিত । পাইথনে, সেগুলি যদিও সিঙ্গলটন স্ট্রিং, যা আলাদা।
ডেনিস

1
@ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳ আরও মজার বিষয় Σহ'ল এটি শব্দের শুরুতে বড় হাতের সংস্করণ, σএটি শব্দের শুরুতে বা মাঝখানে ছোট হাতের সংস্করণ তবে কোনও শব্দের শেষে নয়, এবং ςএটি একটি শব্দের কেবল শেষে ছোট হাতের সংস্করণ।
ফ্যান্ট্যাক

1
@ ডোমহাস্টিংস যেমন আপনার একটি তালিকা রয়েছে এবং আপনি কেবল আউটপুটটি স্থান-সীমান্তে রেখেছেন? এটা আমার কাছে যুক্তিসঙ্গত মনে হয়।
পোকে দিন

উত্তর:


11

Pyth, 13 12 11

{msrVQd^U2l

1 লাইট নুনকে ধন্যবাদ!

জাকুবকে আর একটি বাইট ধন্যবাদ!

এটি এখানে চেষ্টা করুন বা একটি টেস্ট স্যুট চালান

আমরা তালিকার কার্টেসিয়ান পণ্যটিকে [0, 1]নিজের সাথে ইনপুট স্ট্রিংয়ের দৈর্ঘ্যের সমান বহুগুণ নিয়ে তালিকার সত্য / মিথ্যা মানগুলির তালিকা তৈরি করি । সুতরাং প্রতিটি তালিকাতে ইনপুট স্ট্রিংয়ের সমান দৈর্ঘ্য রয়েছে। তারপরে আমরা rইনপুট এবং তালিকার উপরে ভেক্টর অপারেশন হিসাবে ফাংশনটি প্রয়োগ করি , সুতরাং আমরা r letter valueপ্রতিটি উপ উপাদানটির জন্য পাই । rদ্বিতীয় আর্গুমেন্টের সাথে শূন্য হ'ল ছোট হাতের অক্ষর এবং এটির সাথে এটি বড় হাতের অক্ষরে। এটি অ-অক্ষরগুলিতে সদৃশ তৈরি করে যার অর্থ আমাদের ফলাফল থেকে সদৃশ অপসারণ করতে হবে।



@ ল্যাকইনুন আহ, আমি চেষ্টা করেছিলাম কিন্তু কিছু কারণে আমি Mউভয়কেই ব্যবহার করতে ভেবেছিলাম sএবং .nএকই দৈর্ঘ্য was আমি গণনা ভাল মনে হচ্ছে। যাইহোক, এখনই সম্পাদনা, ধন্যবাদ!
FryAmTheEggman

হ্যাঁ এগুলি একই দৈর্ঘ্য, আমি কেবল শেষ অংশটি পরিবর্তন করেছি
লিকি নুন

{msrVQd^U2lকিছুটা খাটো।
জাকুব

@ জাকুব ধন্যবাদ! ব্যবহার Vকরা বেশ ছদ্মবেশী, আমি মনে করি না যে আমি এখানে এটি সম্পর্কে কখনও ভাবতাম।
FryAmTheEggman

8

জেলি , 6 বাইট

żŒsŒpQ

এটি একটি মোনাডিক লিঙ্ক (ফাংশন) যা একটি স্ট্রিংকে বাম আর্গুমেন্ট হিসাবে প্রত্যাশা করে এবং স্ট্রিংগুলির একটি তালিকা প্রদান করে।

নন-এএসসিআইআই অক্ষর পরিচালনা করে। এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে

żŒsŒpQ  Monadic link. Argument: s (string)

 Œs     Swapcase; change the case of all letters in s.
ż       Zipwith; pair each character with itself with changed case.
   Œp   Take the Cartesian product of all pairs.
     Q  Unique; deduplicate the Cartesian product.

3
অন্যান্য ভাষাগুলি রেকর্ড পান: পি
আদনান

2
কোড-পৃষ্ঠা দেখার পরেও, আমি জেলিকে ধারাবাহিকভাবে কোড-গল্ফ চ্যালেঞ্জগুলির মধ্যে সর্বনিম্ন বাইট গণনা সহ দেখতে পেলাম তা অবাক করে দেয়।
পোকে

5

পাইথন, 74 71 বাইট

f=lambda s:s and{r[0]+t for r in{s,s.swapcase()}for t in f(s[1:])}or{s}

নন-এএসসিআইআই অক্ষর পরিচালনা করে। আইডিয়নে এটি পরীক্ষা করুন ।


5

ওরাকল এসকিউএল 11.2, 276 বাইট

WITH v AS(SELECT SUBSTR(:1,LEVEL,1)c,ROWNUM p FROM DUAL CONNECT BY LEVEL<=LENGTH(:1))SELECT w FROM(SELECT REPLACE(SYS_CONNECT_BY_PATH(c,','),',','')w FROM(SELECT UPPER(c)c,p FROM v UNION SELECT LOWER(c),p FROM v)START WITH p=1CONNECT BY PRIOR p=p-1)WHERE LENGTH(:1)=LENGTH(w);

আন golfed

WITH v AS
( -- Split input into an array of characters 
  SELECT SUBSTR(:1,LEVEL,1)c,ROWNUM p FROM DUAL CONNECT BY LEVEL<=LENGTH(:1)
)
SELECT w 
FROM   ( -- Build every string combination
         SELECT REPLACE(SYS_CONNECT_BY_PATH(c,','),',','')w 
         FROM   ( -- Merge upper and lower arrays, keep same position for each character, it allows to mix cases
                  SELECT UPPER(c)c,p FROM v UNION SELECT LOWER(c),p FROM v
                )
         START WITH p=1          -- Start with first character (either lowercase or uppercase)
         CONNECT BY PRIOR p=p-1  -- Add the next character (either lowercase or uppercase)
       )
WHERE LENGTH(:1)=LENGTH(w); -- Keep only full strings

জাহান্নাম হিসাবে কুরুচিপূর্ণ, আরও গল্ফযোগ্য হতে হবে।


4

05 এ বি 1 ই, 17 বাইট

কোড:

vyDš‚N0Êiâvy˜J})Ù

ব্যাখ্যা:

vy                     # for each character in input
  Dš‚                  # create a pair of different case, eg: ['ž', 'Ž']
     N0Êiâ             # for all pairs but the first, take cartesian product
                         result will be a list of layered lists eg: [['ž', '1'], 'a'] 
            vy         # for each such list
              ˜J}      # deep flatten and join as a string eg: ž1a
                 )Ù    # wrap in array and remove duplicates

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


4

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

:ef:1fd.
:2ac.
@u.|@l.

এটি প্রলোগের ছোট হাতের / বড় হাতের পূর্বাভাসগুলির পাশাপাশি কাজ করে, সুতরাং এটি অ-এসসিআইআই অক্ষরগুলিতেও কাজ করে:

?- run("ž1a",Z).
Z = ["Ž1A", "Ž1a", "ž1A", "ž1a"] .

ব্যাখ্যা

আমি পোস্ট করার মুহুর্তের মতো অন্য সমস্ত উত্তরগুলির মতো নয়, এটি কারটিশিয়ান পণ্য পদ্ধতির মোটেও ব্যবহার করে না।

  • প্রধান ভবিষ্যদ্বাণী

    :ef       Split the Input string into a list of 1-char strings
       :1f    Find all valid outputs of predicate 1 with the previous list
              of outputs as input
          d.  Unify the Output with that list excluding all duplicates
    
  • ভবিষ্যদ্বাণী ঘ

এটি ইনপুটটির প্রতিটি চরে বড় হাতের বা ছোট হাত প্রয়োগ করার জন্য ব্যবহৃত হয়, সুতরাং এটি একটি সম্ভাব্য ক্রমিনেয় গণনা করে। প্রধান শিকারী হিসাবে এই শিকারীর উপর ফাউন্ডল ব্যবহার করে সমস্ত সম্ভাব্য ক্রমশক্তি গণনা করতে পারবেন (কিছু অনুলিপি সহ)।

    :2a       Apply predicate 2 on the each element of the Input
       c.     Unify the Output with the concatenation of the elements of
              the previous list
  • ভবিষ্যদ্বাণী 2

এটি স্ট্রিংয়ের একটি চরিত্রকে তার বড় হাতের বা তার ছোট হাতের সংস্করণে পরিণত করতে ব্যবহৃত হয়।

    @u.       Unify the Output with the uppercase version of the Input
       |      Or
        @l.   Unify the Output with the lowercase version of the input

4

হাস্কেল, 69 58 বাইট

import Data.Char
mapM(\x->toLower x:[toUpper x|isAlpha x])

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

সম্পাদনা করুন: @ অ্যানগগুলি 11 বাইট সংরক্ষণ করেছে। ধন্যবাদ!


mapM(\x->toLower x:[toUpper x|isAlpha x])অন্য আমদানি থেকে মুক্তি পাওয়া উচিত?
অ্যাঙ্গস

3

এমএটিএল , 13 বাইট

tYov!Z}N$Z*Xu

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

ব্যাখ্যা

t       % Implicit input string. Duplicate
Yo      % Change case of string
v       % Concatenate as a 2xN char array, where N is input length
!       % Transpose: Nx2 char array. Each row has different case, if letter
Z}      % Split into rows: gives N strings of 2 chars. Each char has different 
        % case if it's a letter, or is repeated otherwise
N$      % Specify N inputs for next function
Z*      % Cartesian product of the N strings. Each combination is a row.
        % Repeated chars (i.e. non-letters) give rise to duplicate rows.
Xu      % Remove duplicate rows. Implicit display

3

জাভাস্ক্রিপ্ট (ফায়ারফক্স 30-57), 92 90 বাইট

f=([c,...s])=>c?[for(t of f(s))for(d of new Set(c.toUpperCase()+c.toLowerCase()))d+t]:['']

সম্পাদনা: 2 বাইট সংরক্ষণ করা হয়েছে কারণ new Setআনন্দের সাথে স্ট্রিং থেকে অনন্য অক্ষরগুলি বের করা হবে।


যখন !c sহয় []যাতে আপনি আসতে পারেন [s]পরিবর্তে
l4m2

f=([c,...s])=>c?[for(t of f(s))for(d of new Set(c.toUpperCase()+c.toLowerCase()))d+t]:[s]
l4m2

3

পার্ল 6 , 37 বাইট

{[X~] '',|.comb.map:{unique .lc,.uc}}

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

ব্যাখ্যা:

{
  [X[~]]                     # cross combine using &infix:<~> operator
    '',                      # empty string so that 1 character strings work
    |                        # flatten the following into outer list
      .comb                  # get every character from input string
      .map:                  # and map it with:
        { unique .lc, .uc }
}

টেস্ট:

#! /usr/bin/env perl6

use v6.c;
use Test;

my &case-permutation = {[X~] '',|.comb.map: {unique .lc,.uc}}

my @tests = (
  'a1a' => <a1a a1A A1a A1A>,
  'abc' => <abc abC aBc aBC Abc AbC ABc ABC>,
  'Hi!' => <hi! hI! Hi! HI!>,
  'ž1a' => 1a ž1A Ž1a Ž1A>,
);

plan +@tests;

for @tests -> $_ (:key($input),:value($expected)) {
  is case-permutation($input).sort, $expected.sort, .gist
}
1..4
ok 1 - a1a => (a1a a1A A1a A1A)
ok 2 - abc => (abc abC aBc aBC Abc AbC ABc ABC)
ok 3 - Hi! => (hi! hI! Hi! HI!)
ok 4 - ž1a => (ž1a ž1A Ž1a Ž1A)

: আপনি একটি বাইট আমি মনে করি সঞ্চয় করতে পারেন {[X~] '',|.comb.map:{unique .lc,.uc}}(পরে অপসারণ স্থান map:)
কোনোর ব্রায়েন


2

পাইথন, 69 বাইট

import itertools as i;f=lambda s:set(i.product(*zip(s,s.swapcase())))

এটি স্ট্রিংগুলির পরিবর্তে সিঙ্গলটন স্ট্রিংগুলির টুপলগুলি প্রদান করে। আমি অনুমতি দিচ্ছি কিনা তা নিশ্চিত নই।
ডেনিস

from itertools import*;i.
বাইট কমান্ডার

ওপি বলেছে যে সিঙ্গলটন স্ট্রিং অনুমোদিত নয়। আপনার এই উত্তরটি আপডেট করা উচিত।
ডিজেএমসিএমহেম

আউটপুট প্রয়োজনীয়তা অস্পষ্ট (এখনও আছে)। আমি এটি পোস্ট করার পরে, ওপি মন্তব্যগুলিতে স্পষ্ট করেছে। আমি কি এই উত্তরটি মুছে ফেলি? সঠিক প্রোটোকল কী?
রুটটো

2

আসলে, 28 বাইট

;╗l2r∙`"'Ö*£"£M╜@Z"iƒ"£MΣ`M╔

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

পাইথন 3-এর যাদুটির জন্য ধন্যবাদ এই প্রোগ্রামটি নন-এএসসিআইআই অক্ষরগুলি পরিচালনা করতে পারে।

ব্যাখ্যা:

;╗l2r∙`"'Ö*£"£M╜@Z"iƒ"£MΣ`M╔
;╗                            save a copy of input to reg0
  l                           length of input
   2r                         [0,1]
     ∙                        Cartesian product with self (length of input) times
      `                  `M   map:
       "'Ö*£"£M                 push `Ö` (swapcase) if 1 else `` for each value in list
               ╜@Z              zip with input
                  "iƒ"£M        swap the case of those values
                        Σ       join string
                           ╔  unique elements

2

সি 229 252 বাইট

i,n,j,k,l;f(char *s){l=strlen(s);for(i=0;i<l;i++)s[i]=tolower(s[i]);int v[l];for(i=0;i<l;i++)v[i]=0;for(i=0;i<pow(2,l);i++){n=i,k=0;for(;n;k++){v[k]=n;n/=2;}for(j=0;j<l;j++){v[j]%=2;if(v[j])s[j]=toupper(s[j]);else s[j]=tolower(s[j]);}printf("%s ",s);}}

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

void f(char *s)
{
  int i,num,k,l=strlen(s);
  for(i=0;i<l;i++)
     s[i]=tolower(s[i]);

   int v[l];
   for(i=0;i<l;i++) 
     v[i]=0;   

   for(i=0;i<pow(2,l);i++)
   {
      num=i,k=0;
      for(;num;k++)
      {
         v[k]=num;
         num/=2;        
      } 

      for(int j=0;j<l;j++)
      {
        v[j]%=2;

        if(v[j])
         s[j]=toupper(s[j]);
        else
         s[j]=tolower(s[j]);

      }
      printf("%s \n",s);       

   } 
}

ব্যাখ্যা:

  • অক্ষরের স্ট্রিং গ্রহণ করুন, স্ট্রিংটি লোয়ারকেসে রূপান্তর করুন।
  • স্ট্রিংয়ের সমান দৈর্ঘ্যের পূর্ণসংখ্য অ্যারে ঘোষণা করুন। জিরো দিয়ে এটি পূরণ করুন।
  • 0 থেকে 2^strlen(s)শুরু করে intঅ্যারেতে বাইনারি আকারে নম্বরগুলি সংরক্ষণ করুন a (3 বাইট স্ট্রিংয়ের জন্য: 000,001,010 ... 111)
  • কোনও অবস্থানে কিছুটা সেট করা থাকলে বা কেস টগল করুন তার উপর নির্ভর করে।
  • প্রতিটি সম্ভাব্য সমন্বয় জন্য স্ট্রিং আউটপুট।

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


আমি যখন 10 বছর আগে মূলত vb6 এ এটি করেছি তখন আমি বিশ্বাস করি যে আমার সমাধানটি এর মতো। আপনি ফিরিয়ে আনা কিছু স্মৃতি;)
অকর্মা

@ পোকে খুশি যে আমি পারতাম! :)
আবেল টম

গল্ফের জন্য কয়েকটি জিনিস: i++অন ​​লুপগুলিতে সরান এবং ++সরাসরি ব্যবহার করুন পাশাপাশি ব্র্যাককেট এবং আধা-কলামগুলি যেখানে সম্ভব সেখানে সরিয়ে ফেলার জন্য কিছু অংশ রেখে দিন। এছাড়াও, আপনি প্যারামিটারের স্থানটি সরিয়ে ফেলতে পারেন এবং শেষে একটি তিন্নি-যদি অ্যাসাইনমেন্ট ব্যবহার করতে পারেন। মোট: i,n,j,k,l;f(char*s){l=strlen(s);for(i=0;i<l;)s[i]=tolower(s[i++]);int v[l];for(i=0;i<l;)v[i++]=0;for(i=0;i<pow(2,l);){for(n=i++,k=0;n;n/=2)v[k++]=n;for(j=0;j<l;j++){v[j]%=2;s[j]=v[j]>0?toupper(s[j]):tolower(s[j]);}printf("%s ",s);}}( -20 বাইট / 232 বাইট )
কেভিন ক্রুইজসেন

1

হুন , 242 বাইট

|=
t/tape
=+
l=(reap (pow 2 (lent t)) t)
%+
roll
(gulf 0 (dec (lent l)))
|=
{a/@ b/(set tape)}
=+
%+
turn
(gulf 0 (dec (lent t)))
|=
n/@
=+
t=(snag n t)
=+
k=(trip t)
?:
=(0 (cut 0 n^1 a))
?:
=((cuss k) t)
(cass k)
(cuss k)
t
(~(put in b) -)

Ungolfed:

|=  t/tape
=+  l=(reap (pow 2 (lent t)) t)
%+  roll  (gulf 0 (dec (lent l)))
|=  {a/@ b/(set tape)}
    =+  %+  turn  (gulf 0 (dec (lent t)))
      |=  n/@
      =+  t=(snag n t)
      =+  k=(trip t)
      ?:  =(0 (cut 0 n^1 a))
        ?:  =((cuss k) t)
              (cass k)
        (cuss k)
      t
    (~(put in b) -)

দুর্ভাগ্যক্রমে, এটি কতটা ছোট হতে পারে তা আমি নিশ্চিত নই।

প্রথমত, আমরা l2 ^ (দৈর্ঘ্যের টি) এর পুনরাবৃত্তিগুলির সাথে তালিকার সমান সেট করি tfacস্টান্টলিতে হুনের কোনও কার্যকারিতা নেই, তবে 2 ^ n সর্বদা n এর চেয়ে বড় থাকে, সুতরাং আমরা কেবলমাত্র বৃহত তালিকার উপরে ম্যাপ করি এবং setএন্ট্রি ডি-নকল করতে একটি (হ্যাশম্যাপ) ব্যবহার করি ।

তারপরে আমরা তালিকাতে ভাঁজ [0 .. (দৈর্ঘ্য l)], একটিতে জমে (set tape)। আমাদের lসরাসরি ম্যাপিংয়ের পরিবর্তে এটি করা দরকার কারণ এটি কোন সংখ্যার পুনরাবৃত্তি ( a) আমাদের এটিও জানতে হবে , তবে হুন একটি খাঁটি ভাষা হওয়ার কারণে কেবল কোনও সঞ্চয়ের বৃদ্ধি করতে পারে না।

আমরা [0 .. (দৈর্ঘ্যের টি)] এর উপরে মানচিত্র রাখি (আবার আমাদের বর্তমান সূচীটি রয়েছে), tস্ট্রিংয়ের নবম অক্ষরকে সেট করে, পরীক্ষা করা হয় যে এনথের বাইথ aএবং কেসটি ইনভার্ট করছে (ক্রস বা ক্যাস, এটি পরিবর্তন করে কিনা তার উপর নির্ভর করে) অথবা না). এই মানচিত্রের রিটার্ন টাইপটি একটি tape

তারপরে আমরা স্ট্রিংটি আমাদের হ্যাশম্যাপে রেখেছি এবং সমস্ত স্ট্রিংয়ের হ্যাশম্যাপটি ফিরিয়ে আছি।


"2 ^ n সর্বদা n এর চেয়ে বড় থাকে!"। আসলে n! > 2^n, প্রদত্ত যে nকমপক্ষে 4। (আনয়ন দ্বারা প্রমাণ, বেস ক্ষেত্রে n=4।) En.wikipedia.org/wiki/...
mathmandan

1

সি, 216 বাইট

k,i,j,p,n,m;z(char *c){n=-1;m=0;while(c[++n])if(c[n]>64&c[n]<90)c[n]+=32;else if(c[n]<'a'|c[n]>'z')m++;k=1<<(n-m);for(j=0;j<k;j++){for(i=0;i<n;i++){p=1<<i;putc((j&p)==p?toupper(c[i]):c[i],stdout);}putc(0xa,stdout);}}

এটি একটি ভিন্ন পন্থা , অন্যান্য সি উত্তর মত একই পদ্ধতির।

আমি কি এটি মুছে ফেলা উচিত, এবং একটি মন্তব্য হিসাবে এটি অন্য উত্তর অধীনে রাখা উচিত?

আমাকে বর্ণহীন সংস্করণ দিয়ে ব্যাখ্যা করতে দিন

k,i,j,p,n,m;
z(char * c) {
    int n=-1;       // We start at -1 because of forward incrementation
    int m=0;        // this will count the characters we don't have to manipulate
    while(c[++n])   // go until we reach '\0'
    {
        if(c[n]>='a'&c[n]<='z')c[n]-=32; // If we are lower case, then convert
        else if(c[n]<'A'|c[n]>'Z')m++;   // If we are neigther lower case
                                         // nor upper, then make a note
    }

    // get 2 ^ ("length" - "number of invonvertibles")
    k=1<<(n-m); 
    for(j=0;j<k;j++) {      // go through the combinations
        for(i=0;i<n;i++) {  // for each combination go though the characters
            p=1<<i;         // for each character get it's bit position
            putc(
                // if the bit position is set (==1) 
                (j&p)==p ?
                   tolower(c[i]) // convert
                   : c[i], // else: don't
                stdout);
        }
        putc(0xa, stdout);  // print a newline
    }
}

1

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

i=input().lower()
for l in{*__import__('itertools').product(*zip(i,i.upper()))}:print(*l,sep='')

পার্টিতে দেরিতে হলেও এখনও যেতে হয়েছিল। আমি যে জিনিসগুলি মিস করেছি তা আমাকে স্মরণ করিয়ে দেওয়ার জন্য, আমাকে গল্ফিংয়ের টিপস দেওয়ার জন্য এবং একগুচ্ছ বাইটস সংরক্ষণ করার জন্য DLosc কে ধন্যবাদ। :)


@DLosc টিপস জন্য ধন্যবাদ! আমি এই বৈশিষ্ট্যগুলিতে এতে যুক্ত করব :) :)
ব্লক

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

আমি উভয় উপায়ে চেষ্টা করেছি এবং {* এক্সপ্রেস doing করা আমাকে একটি সিনট্যাক্স এরর দেয়।
ব্লক

Ahhhh। এই জন্য. কিউ পাইথনের সর্বশেষ সংস্করণটি 3.3 বা কিছুতে রয়েছে।
ব্লক

আপনি এখানে যান: অনলাইনে চেষ্টা করে দেখুন! (এছাড়াও একটি বাগ সংশোধন এবং ব্যবধানের golfed।)
DLosc



1

টিসিএল, 165 181 বাইট

set n -1
while {[incr n]<1<<[llength [set s [split $argv {}]]]} {puts [join [lmap c $s b [split [format %0[llength $s]b $n] {}] {string to[expr $b?{u}:{l}] $c}] ""]}

সার্জিওলকে উন্নতি করার জন্য ধন্যবাদ । পূর্ববর্তী উত্তর:

set s [split $argv {}]
set n -1
while {[incr n]<1<<[llength $s]} {set r ""
foreach c $s b [split [format %0[llength $s]b $n] {}] {set r $r[string [expr $b?{tou}:{tol}] $c]}
puts $r}

আউটপুট পাঠ্য তৈরি করার সময় উপরের / লোয়ার কেসের মধ্যে চয়ন করতে বাইনারি নম্বর ব্যবহার করে।



@ সার্জিওল এটি আমার থেকে যথেষ্ট আলাদা যে আপনার নিজের উত্তর হিসাবে এটি পোস্ট করা উচিত এবং দুর্দান্ত হওয়ার জন্য ভাল কৃতিত্ব পাবেন।
দথোমাহাস

না, আমি কেবল আপনার উত্তরের ছোটখাটো অংশই বদলেছি, আমি দৃষ্টিভঙ্গি বা প্রয়োজনীয় অ্যালগরিদমিকগুলি পরিবর্তন করিনি, সুতরাং আমার দৃষ্টিভঙ্গিতে আমি ভেবেছিলাম যে আপনার নিজের একটি নতুন উত্তর তৈরি করার যোগ্যতা আমার নেই! এবং আমি সন্দেহ করি যে একই উদ্দেশ্যে আমি আপনার মূল হিসাবে একটি অ্যালগরিদম সংক্ষিপ্ত পেতে পারি!
সার্জিওল


1

সংযুক্তি , 39 বাইট

&Cross[Sum@V]##Unique@V#SwapCase=>Chars

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

পার্ল উত্তর অনুরূপ। (আমি আমার আরও আকর্ষণীয় বিকল্পটি হারিয়েছি, পরের কয়েক ঘন্টার মধ্যে আমার সেগুলি পোস্ট করা উচিত))


0

জাভাস্ক্রিপ্ট (ES6), 103

নন-এএসসিআইআই অক্ষর পরিচালনা করে

(a,r=new Set)=>a?f(a.slice(1)).map(v=>(C=o=>r.add(a[0][`to${o}erCase`]()+v),C`Upp`,C`Low`))&&[...r]:[a]

পরীক্ষা

f=(a,r=new Set)=>a?f(a.slice(1)).map(v=>(C=o=>r.add(a[0][`to${o}erCase`]()+v),C`Upp`,C`Low`))&&[...r]:[a]

function test() { O.textContent = f(I.value).join('\n') }

test()
<input id=I oninput='test()' value='ž1a'>
<pre id=O></pre>

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