তথ্য নিরপেক্ষ করুন


22

ডেটা নিরপেক্ষ করতে, পুনরাবৃত্তভাবে সমস্ত সংখ্যা (অঙ্কগুলি নয়!) শূন্যের সাথে এবং সমস্ত অক্ষর (স্ট্রিং নয়!) ফাঁকা স্থানের সাথে প্রতিস্থাপন করুন।

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

যদি আপনার ভাষাতে একটি অন্তর্নির্মিত থাকে যা এই কাজটির সমস্ত বা বেশিরভাগটি করে তবে আমি এটি ব্যতীত একটি অতিরিক্ত বিকল্প সংস্করণটির প্রশংসা করব।

প্রতিটি ভাষায় সংক্ষিপ্ততম জমাটি একটি বিজয়ী, এবং আমার কাছ থেকে একটি উত্সাহ গ্রহণ করবে।

নমুনা মামলা

  1. """"

  2. 70

  3. 123.4560

  4. "X"" "

  5. " "" "

  6. "Yo!"" "

  7. [][]

  8. [-1.2E3][0]

  9. ["Hey"][" "]

  10. ["H","e","y"][" "," "," "]

  11. ["R",2,"D",2][" ",0," ",0]

  12. ["C","3","P",0][" "," "," ",0]

  13. ["THX",[1138]][" ",[0]]

  14. ["T","H","X",[1138]][" "," "," ",[0]]

  15. [[["H"],"e",1,1,0],[[-3],"arth"]][[[" "]," ",0,0,0],[[0]," "]]

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


আমাদের ভাষা যদি অক্ষর এবং দৈর্ঘ্য -1 স্ট্রিংয়ের মধ্যে পার্থক্য না করে?
xnor

@ এক্সএনএআর এএএফসিটি এর প্রভাব একই হবে।
Adám

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

@ এক্সনর সঠিক এটি আরও ভাল প্রতিফলিত করতে প্রশ্ন সম্পাদনা করতে নির্দ্বিধায়।
Adám

উত্তর:


17

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

f=o=>o.big?o.replace(/./g,' '):o.map?o.map(f):0

পরীক্ষার মামলা


অবশেষে, একটি ব্যবহার big()! যদিও, আপনি সম্ভবত এর raw()পরিবর্তে সম্ভবত আরও ভাল ভবিষ্যত-প্রুফিং সরবরাহ করবেন ।
শেগি

পছন্দ করুন আপনি কোন বাক্য গঠন ব্যবহার করবেন raw()? আমি String.prototype.raw()সংজ্ঞায়িত বলে মনে করি না । শুধু String.raw()হয়।
আর্নৌল্ড

ওহ, হ্যাঁ, দুঃখিত।
শেগি

7

পাইথন 2 , 52 বাইট

f=lambda x:1-(x<{})and map(f,x)if x<''else' '*len(x)

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

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

পাইথন আপনাকে বিভিন্ন ধরণের তুলনা করতে দেয়। সংখ্যার প্রকারগুলি সর্বদা পুনরাবৃত্তের তুলনায় ছোট এবং পুনরাবৃত্তগুলি তাদের প্রকারের নাম অনুসারে বাছাই করা হয়

0 < {} < [] < '' < ()

এইভাবে, নিম্নলিখিতটি করে।

  • তাহলে এক্স সাংখ্যিক x<{}আয় সত্য এবং 1-(x<{})আয় 0 । কোড পরে andকার্যকর করা হয় না।

  • তাহলে এক্স iterable হয় 1-(x<{})আয় 1 (truthy), তাই কোড পর andমৃত্যুদন্ড কার্যকর হয়।

    • তাহলে এক্স একটি তালিকা রয়েছে, x<''সত্য এবং তার আইটেম উপর ম্যাপ পায়।

    • তাহলে এক্স একটি স্ট্রিং, x<''মিথ্যা এবং এক্স একই দৈর্ঘ্যের শূণ্যস্থান একটি স্ট্রিং প্রতিস্থাপিত হয়েছে।


7

রুবি, 54 53 49 বাইট

f=->a{a*0==0?0:a*0==[]?a.map{|x|f[x]}:" "*a.size}

হতে পারে আরও ভাল উপায় আছে তবে:

  • পূর্ণসংখ্যার জন্য x * 0 == 0
  • x * 0 == "" স্ট্রিংয়ের জন্য
  • x * 0 == [] অ্যারেগুলির জন্য

চতুর! পাইথনের ধরণগুলি নির্ধারণ করার জন্য আমাকে একটি উপায় দেওয়ার জন্য ধন্যবাদ!
টিডবি

এটি অ্যারের বাইরে স্ট্রিং এবং সংখ্যা উদাহরণগুলির জন্য কাজ করে না, তবে আপনি যদি এটিতে পরিবর্তন a.mapকরেন [*a].mapতবে প্রত্যাশা অনুযায়ী কাজ করে
অ্যালেক্সিস অ্যান্ডারসন

ধন্যবাদ এটি এখন ঠিক করা হয়েছে।
জিবি

6

গণিত, 51 বাইট

আমি বর্তমানে এই বাইট গণনায় দুটি সমাধান পেয়েছি:

#/._?NumberQ->0/.x_String:>StringReplace[x,_->" "]&
StringReplace[#,_->" "]~Check~#&//@#/._?NumberQ->0&

দ্বিতীয়টি একটি গুচ্ছ সতর্কতা ছুড়ে দেয় যা উপেক্ষা করা যায়।

ব্যাখ্যা

উভয় ক্ষেত্রেই, আমরা সংখ্যাগুলি শূন্যে রূপান্তর করে শুরু করি

#/._?NumberQ->0

তারপরে স্ট্রিংটি প্রক্রিয়া করার জন্য দুটি বিকল্প রয়েছে। হয়, আমরা অন্য বিকল্প ব্যবহার করি যা কেবল স্ট্রিংগুলিতে প্রযোজ্য:

.../.x_String:>StringReplace[x,_->" "]

বা, আমরা MapAllঅপারেটরটি ব্যবহার করি //@যা নেস্টেড তালিকার প্রতিটি একক উপাদানের উপরে ফাংশন মানচিত্র করে। এখানে ধরা হ'ল আমরা StringReplaceজিরোগুলির পাশাপাশি চিহ্নটিও ব্যবহার করার চেষ্টা করব List(যেহেতু //@এটি প্রকাশের শিরোনামগুলির মধ্যে দিয়েও যায়), তাই আমাদের ধ্বংস ( এটিকে অন্য ভাষায় বিবৃতি দেওয়ার Checkমতো catch) ব্যবহারের সাথে সর্বনাশ এড়াতে হবে এই মানগুলি:

StringReplace[#,_->" "]~Check~#&//@...

5

জেলি , 4 বাইট

nOa⁶

এটি একটি monadic লিঙ্ক। জেলির অন্তর্নিহিত মুদ্রণটি প্রচুর স্প্ল্যাটিং করে; আউটপুটটি যা হওয়া উচিত তা যাচাই করতে আপনি এর সাথে অভ্যন্তরীণ উপস্থাপনাটি দেখতে পারেন ŒṘ। নোট করুন যে এটি অক্ষরের তালিকা হিসাবে স্ট্রিংগুলি উন্মোচিত করে, জেলি ইন্টারপ্রেটার কীভাবে তাদের প্রয়োগ করে।

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

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

nOa⁶  Monadic link. Argument: z

 O    Ordinal; replace all characters with the code points.
      This does not affect numbers.
n     Vectorizing not-equal; compare z with the result to the right, replacing
      characters with 1 and numbers with 0.
  a⁶  Logical AND space; replace all 1's with spaces.

আমি একটি এপিএল আসার অপেক্ষায় ছিলাম। 1-বাইট সমাধানের জন্য এখন আলাদা বেছে নিয়েছেন!
অ্যাডাম

শীর্ষস্থানীয়দের জন্য ধন্যবাদ, তবে আমি নিশ্চিত নই যে আমি এমনকি [[["H"],"e",1,1,0],[[-3],"arth"]]এপিএলে প্রতিনিধিত্ব করতেও জানি ...
ডেনিস

JSON2APLexpr←⎕SE.Dyalog.Utils.repObj 7159⌶ ⋄ JSON2APLexpr'[[["H"],"e",1,1,0],[[-3],"arth"]]'দেয় ((,⊂,'H') (,'e') 1 1 0) ((,¯3) 'arth')। অবগতির জন্য, 7159⌶হতে হবে ⎕JSONসংস্করণ 16.0 হবে।
অ্যাডাম

এপিএল যে কোনও জেএসএনকে মোকাবেলা করতে পারে। তবে, প্রচুর এপিএল ডেটা JSON এ দ্ব্যর্থহীনভাবে উপস্থাপন করা যায় না।
অ্যাডাম

আপনি কি মনে করেন যে কোনও কোড-গল্ফের মধ্যে পার্সিং বা সম্ভবত এপিএল অ্যারে কৌশলগুলি জড়িত জড়িত রয়েছে?
Adám

5

পার্ল 6, 34 48 বাইট

{.deepmap:{$_~~Str??" "x.comb!!0}}

{$_~~List??$_».&?BLOCK!!$_~~Str??" "x .comb!!0}

সম্প্রসারিত:

{                          # block-based lambda
    $_ ~~ List             # if argument is a list/array
        ?? $_».&?BLOCK     # then recurse for each element (&?BLOCK is a compile-time var)
        !! $_ ~~ Str       # else if argument is a string
            ?? " "x .comb  # then use space repeated by the string's length,
            !! 0           # else use the number 0
}

.deepmap সঠিকভাবে মত একবচন ইনপুট জন্য কাজ করে না "X"বা 7, কারণ এটা সবসময় একটি তালিকা প্রদান করে।
ব্র্যাড গিলবার্ট

ডার্ন, আমি অবশ্যই এটি উপেক্ষা করেছি (বা কার্যটি পরে স্পষ্ট করে দেওয়া হয়েছিল)। এটি এটি বেশ খানিকটা দীর্ঘ করে দেয়।
স্মৃতি

3

জিএপি , 91 বাইট

জিএপি-তে একটি পদ্ধতি রয়েছে Zeroযা একটি অ্যাডিটিভ কাঠামোর উপাদানগুলির সাথে সম্পর্কিত নিরপেক্ষ যুক্ত উপাদানকে ফেরত দেয় returns এটি সংখ্যা এবং এমনকি সংখ্যার তালিকাগুলি পরিচালনা করে যা ভেক্টর হিসাবে বিবেচিত হয়, তবে স্বেচ্ছাসেবী তালিকা নয়। সুতরাং আসুন এই এবং চরগুলি যোগ করুন এবং ব্যবহার করুন যে স্ট্রিংগুলি চরগুলির তালিকা:

InstallOtherMethod(Zero,[IsChar],c->' ');
InstallOtherMethod(Zero,[IsList],l->List(l,Zero));

(আমি সম্পর্কে newline বেড়ে চলেছে করছি না যেমন প্রয়োজন হয় না।) অবশ্যই এই পর্যন্ত অভিপ্রেত ব্যবহার থেকে দূরে Zero, এবং যদি আমি ব্যবহার ছেড়ে দিয়েছেন GAP নালিশ জানাব Installঅন্যান্যMethod । এখন আমি করতে পারি:

gap> Zero([[["H"],"e",1,1,0],[[-3],"arth"]]);
[ [ [ " " ], " ", 0, 0, 0 ], [ [ 0 ], "    " ] ]

আমি বলব না যে বিল্টিন বেশিরভাগ কাজ করে, কেউ সন্দেহ করতে পারে যে একটি সাধারণ ফাংশন লেখার জন্য ছোট হওয়া উচিত, তবে আমার সেরা চেষ্টাটি ছিল 92 বাইট দীর্ঘ:

f:=function(x)if IsInt(x)then return 0;elif IsList(x)then return List(x,f);fi;return' ';end;

2

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

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

class N a where n::a->a
instance N Double where n _=0
instance N Char where n _=' '
instance N a=>N[a]where n=map n

এটি যে কোনও সংখ্যা ডাবল হিসাবে পরিচালনা করে:

*Main> n 42
0.0
*Main> n 123.456
0.0
*Main> n "hi"
"  "
*Main> n [[1,2],[3,4,5]]
[[0.0,0.0],[0.0,0.0,0.0]]
*Main> n ["hello","world!"]
["     ","      "]

1
এটির সাথে একটি ডেটা স্ট্রাকচার data N=S[Char]|I Int|L[N]এবং একটি পুনরাবৃত্ত ফাংশন সংজ্ঞায়িত করা আরও কম হওয়া উচিত ।
Zgarb

আপনি সম্ভবত আমার অনুমান ঠিকই করেছেন, তবে এটি কম আকর্ষণীয় এবং তবুও দেখতে সমস্যাটি সত্যিই সমাধান না করার মতো দেখাচ্ছে (আমি স্বীকার করি এটি আসলে নিকটেই রয়েছে)। আমি এটা অন্য কারও জন্য রেখে দেব।
খ্রিস্টান সিভর্স 16'17

পূর্ণসংখ্যা ? পরীক্ষার কেস ৩. কীভাবে?
অ্যাডম

@ আদম ওহ আপনি ঠিক বলেছেন, এবং দুর্ভাগ্যক্রমে আমি দাবি করতে পারি না যে আমার ভাষায় সেগুলি নেই। আমি কি কেবল ডাবলকে পরিচালনা করতে পারি? আমি দশমিক বিন্দু ছাড়াই তাদের ইনপুট করতে পারি।
খ্রিস্টান সিভর্স

@ ক্রিশ্চিয়ন্সআইভার্স হ্যাঁ, এটি ভাল। মূলত, প্রদত্ত জেএসওএন থেকে আমদানি (সম্ভব হলে) আপনাকে যা দেবে তা হ্যান্ডেল করতে সক্ষম হওয়া উচিত।
এডম

2

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

function f($a){return!is_array($a)?is_string($a)?str_pad("",strlen($a)):0:array_map(f,$a);}

যদি প্যারামিটার অ্যারে হয়: পুনরাবৃত্তি ব্যবহার করে array_map
অন্যথায় যদি প্যারামিটারটি স্ট্রিং থাকে: একই দৈর্ঘ্যের সাথে ফাঁকের একটি স্ট্রিং তৈরি করে।
অন্য 0

is_stringএক বাইট ওভার সাশ্রয় is_numeric; উপেক্ষা is_array()উপস্থাপনা বন্ধনী অপ্রচলিত। সামগ্রিকভাবে এটি 17 বাইট if()recursion-loop;else x?string:numberরেফারেন্সের মাধ্যমে কলের চেয়ে কম ।


2

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

g=lambda d:0if d*0==0else " "*len(d)if d*0==""else map(g,d)

প্রকার নির্ধারণের জন্য জিবি ব্যবহার করে


2

 কমন লিস্প, 87

(defun c(e)(typecase e(list(mapcar'c e))(number 0)(string(map'string(lambda(u)#\ )e))))

Ungolfed

(defun c(e)
  (typecase e
    (list (mapcar #'c e))
    (number 0)
    (string (map 'string (lambda(u) #\space) e))))

উদাহরণ

> (c '((("H") "e" 1 1 0) ((-3) "arth")))
(((" ") " " 0 0 0) ((0) "    "))

1

গ্রোভি, 53 বাইট

{[it].collectNested{it in String?" "*it.size():0}[0]}

এটি একটি নামবিহীন বন্ধ। এখানে চেষ্টা করুন!

ব্যাখ্যা :

গ্রোভির এই পদ্ধতি রয়েছে .collectNested যা কোনও তালিকার মাধ্যমে পুনরাবৃত্তি করতে সহায়তা করে যেন এটি চ্যাপ্টা।

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


1

পাইক, 8 বাইট (পুরানো সংস্করণ)

.FZ*0+d&

ব্যাখ্যা:

.FZ*0+d& - for i in deep_for(input):
  Z*     -    i*0
    0+   -   ^ + 0
      d& -  ^ and " "

এটি আর কোনও আপডেট হিসাবে কাজ করে না যেখানে এটি এমন অন্যান্য ধরণের মিথ্যাচার তৈরি করে যেখানে সত্যবাদি স্বয়ংক্রিয়ভাবে সত্যবাদী ধরণের মিথ্যাতে রূপান্তরিত হয়।


এটি অবশ্যই গ্রহণযোগ্য।
অ্যাডাম

1

সি #, 197 195 বাইট

a=>{if(a is string||a is char)return new string(' ',(a as string)?.Length??1);try{System.Convert.ToDecimal(a);return 0;}catch{}var b=(object[])a;for(int i=0;i<b.Length;)b[i]=n(b[i++]);return b;};

এই ফাংশনটি হ্যান্ডলগুলি char, stringকোন builtin সংখ্যা ধরন ও রিকার্সিভ অ্যারে।

সম্পূর্ণ প্রোগ্রাম, অলংগিত শ্বেত আউটপুট সহায়ক:

using System.Linq;    
class Class
{
    public static void Main()
    {
        System.Func<object, object> n = null;
        n = a => 
        {
            if (a is string || a is char)
                return new string(' ', (a as string)?.Length ?? 1);
            try
            {
                System.Convert.ToDecimal(a);
                return 0;
            }
            catch { }

            var b = (object[])a;
            for (int i = 0; i < b.Length;)
                b[i] = n(b[i++]);
            return b;
        };

        var result = n(new object[] { new object[] { new object[] { "H" }, 'e', 1.5, 1, 0 }, new object[] { new object[] { -3 }, "arth" } });
        System.Console.WriteLine(Output(result));
        System.Console.Read();
    }

    static string Output(object x)
    {
        var arr = x as object[];
        if (arr != null)
            return "[" + string.Join(",", arr.Select(Output)) + "]";
        else
            return x.ToString();
    }
};

usingবিবৃতিটি কেবল আউটপুট সহায়কের জন্য প্রয়োজন, আসল ফাংশনের জন্য নয়।

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


1

এপিএল (ডায়ালগ) 13.2 এবং এর আগে, 1 বাইট

13.2 সংস্করণ পর্যন্ত এবং মোনাডিক যথাযথভাবে এটি করেছে। পুরাতন আচরণ সেটিং দ্বারা সক্রিয় করা যেতে পারে ⎕ML( এম igration এল শুন্যতে evel)।

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

পুরানো আচরণ ব্যবহার না করে এটি 4 বাইট:

0⍴⊂

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

 ঘিরা

0⍴ সম্পূর্ণ ইনপুটের অনুলিপিগুলির দৈর্ঘ্য-শূন্যের তালিকা তৈরি করুন (কেবলমাত্র কাঠামো এবং টাইপ তথ্য সংরক্ষণ করে)

 এর থেকে একটি উপাদানকে জবরদস্তি করুন (প্রোটোটাইপিকাল অ্যারে তৈরি করে)


0

জাভাস্ক্রিপ্ট ES6, 81 টি অক্ষর

f=(x,t)=>(t=g=>eval(`try{x.${g}}catch(e){}`))`replace(/./g,' ')`||t`map(f)`||x&&0

টেস্ট:

f=(x,t)=>(t=g=>eval(`try{x.${g}}catch(e){}`))`replace(/./g,' ')`||t`map(f)`||x&&0

console.log(
`""  ""
7  0
123.456  0
"X"  " "
"  "  "  "
"Yo!"  "   "
[]  []
[-1.2E3]  [0]
["Hey"]  ["   "]
["H","e","y"]  [" "," "," "]
["R",2,"D",2]  [" ",0," ",0]
["C","3","P",0]  [" "," "," ",0]
["THX",[1138]]  ["   ",[0]]
["T","H","X",[1138]]  [" "," "," ",[0]]
[[["H"],"e",1,1,0],[[-3],"arth"]]  [[[" "]," ",0,0,0],[[0],"    "]]`
.split`
`.map(s => s.split`  `.map(eval))
.every(([s,k]) => JSON.stringify(f(s))==JSON.stringify(k)))


0

জাভা 7, 262 (268) বাইট

import java.util.*;Object c(Object o){if(o instanceof List){List r=new ArrayList();for(Object x:(List)o)r.add(c(x));return r;}if(o instanceof String){String r="\"";for(int i=((String)o).length();i-->0;r+=" ");return r+"\"";}return o instanceof Number?0:o instanceof Character?"' '":"";}

282 + 6 যোগ \"এবং' স্ট্রিং এবং অক্ষরগুলি প্রিন্ট করার জন্য।

ব্যাখ্যা:

import java.util.*;            // Required import for List and ArrayList
Object c(Object o){            // Method with Object parameter and Object return-type
  if(o instanceof List){       //  If the input is a List
    List r=new ArrayList();    //   Create a result-list
    for(Object x:(List)o)      //   Loop over the items of the input-list
      r.add(c(x));             //    And add all items with a recursive-call to this method
                               //   End of loop (implicit / single-line body)
    return r;                  //   Return result-list
  }if(o instanceof String){    //  If the input is a String instead
    String r="\"";             //   Create a result-String (starting with `"`
    for(int i=((String)o).length();i-->0;r+=" ");
                               //   Replace all characters in the String with a space
    return r+"\"";             //   Return the result within double-quotes
  }
  return o instanceof Number?  //  If the input is an integer or decimal instead:
    0                          //   Return 0
   :o instanceof Character?    //  If the input is a character instead:
    "' '"                      //   Return ' '
   :                           //  Else:
    "";                        //   Return an empty String
}                              // End of method

পরীক্ষার কোড:

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

import java.util.*;
class M{
  static Object c(Object o){if(o instanceof List){List r=new ArrayList();for(Object x:(List)o)r.add(c(x));return r;}if(o instanceof String){String r="\"";for(int i=((String)o).length();i-->0;r+=" ");return r+"\"";}return o instanceof Number?0:o instanceof Character?"' '":"";}

  public static void main(String[] a){
    System.out.println(c(""));
    System.out.println(c(7));
    System.out.println(c(123.456));
    System.out.println(c('X'));
    System.out.println(c("  "));
    System.out.println(c("Yo!"));
    System.out.println(c(new ArrayList()));
    System.out.println(c(new ArrayList(){{add(-1.2e3);}}));
    System.out.println(c(new ArrayList(){{add("Hey");}}));
    System.out.println(c(new ArrayList(){{add('H');add('e');add('y');}}));
    System.out.println(c(new ArrayList(){{add('R');add(2);add('D');add(2);}}));
    System.out.println(c(new ArrayList(){{add("THX");add(new ArrayList(){{add(1138);}});}}));
    System.out.println(c(new ArrayList(){{add('T');add('H');add('X');add(new ArrayList(){{add(1138);}});}}));
    System.out.println(c(new ArrayList(){{add(new ArrayList(){{add(new ArrayList(){{add('H');}});add('e');add(1);add(1);add(0);}});add(new ArrayList(){{add(new ArrayList(){{add(-3);}});add("arth");}});}}));
  }
}

আউটপুট:

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