কখনও বিজোড় বা এমনকি না


15

আপনি কি খেয়াল করেছেন, এটি প্যালিনড্রোম?

ইনপুট
অ-নেতিবাচক পূর্ণসংখ্যার সংখ্যা বা স্ট্রিং এটি উপস্থাপন করে


সংখ্যার দুটি বৈশিষ্ট্য উপস্থাপন করে আউটপুট 4 সম্ভাব্য আউটপুট:

  • এটা কি প্যালিনড্রোম?
  • কৃপণ # 2

কৌতুকপূর্ণ # 2 সম্পত্তি
যদি সংখ্যাটি প্যালিনড্রোম না হয় তবে এই সম্পত্তিটির প্রশ্নের উত্তর দেয় "প্রথম এবং শেষ সংখ্যাগুলির কি সমতা আছে?"
যদি সংখ্যাটি প্যালিনড্রোম হয় তবে এই সম্পত্তিটি "প্রথম এবং মাঝের অঙ্কের একই সমতা আছে?" প্রশ্নের উত্তর দেয় । এমনকি দৈর্ঘ্যের জন্য, মাঝারি সংখ্যাটি দুটি অঙ্কের কেন্দ্রের একটি।

উদাহরণ

12345678 -> মিথ্যা মিথ্যা
এটি প্যালিনড্রোম নয়, প্রথম এবং শেষ সংখ্যার আলাদা সমতা রয়েছে

12345679 -> মিথ্যা সত্য
এটি প্যালিনড্রোম নয়, প্রথম এবং শেষ সংখ্যার সমতা রয়েছে

12344321 -> সত্য মিথ্যা
এটি প্যালিনড্রোম, প্রথম সংখ্যা 1 এবং মাঝারি অঙ্ক 4 এর সমতা রয়েছে

123454321 -> সত্য সত্য
এটি প্যালিনড্রোম, প্রথম সংখ্যা 1 এবং মাঝারি অঙ্ক 5 এর সমতা রয়েছে

পিএস
আপনি আউটপুট টাইপ এবং ফর্ম্যাট সিদ্ধান্ত নিতে প্রস্তুত। এটি যে কোনও 4 স্বতন্ত্র মান হতে পারে। আপনার উত্তরে এটি উল্লেখ করুন।


"এই সংখ্যার অর্ধেক" এর অর্থ কী তা পরিষ্কার নয়। আমি ভেবেছিলাম এর অর্থ এন / ২, তবে স্পষ্টকরণটি বোঝা যাচ্ছে এটি প্রথম বা শেষ অর্ধেকের স্ট্রিংওয়াইজযুক্ত।
xnor

@ এক্সনর এর স্ট্রিংওয়াইজ
ডেড

আমি মনে করি যা সম্পাদনা করেছি তার বিধি বিধানের সহজ উপায় way
xnor

@ এক্সনর ভাল লাগছে, আপনাকে ধন্যবাদ!
ডেড পসসাম

আমরা কি অ-নেতিবাচক পূর্ণসংখ্যার ইনপুট ধরে নিতে পারি?
তিতাস

উত্তর:


6

05 এ বি 1 ই, 15 , 14 13 বাইট (রিলে এবং কারুসোমপুটিং ধন্যবাদ

ÐRQi2ä¨}ȹRÈQ

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

যদি এটি প্যালিনড্রোম হয় তবে বন্ধনীগুলি দিয়ে ফিরে আসে

সমতা আলাদা হলে 0 দিয়ে ফিরে আসে, 1 সমান হলে 1 হয়

Ð ইনপুট যুক্ত করুন, এর সাথে আমার কাজ করার মতো পর্যাপ্ত ইনপুট রয়েছে

R স্ট্যাকের শেষ উপাদানটি বিপরীত করুন

Q দেখুন এটি একই কিনা (দুটি শীর্ষ উপাদান নিয়ে যায় এবং == সম্পাদন করে)

i যদি বিবৃতি হয়, তবে কেবলমাত্র যখন এটি একটি প্যালিনড্রোম হয় through

2 2 নম্বর ধাক্কা

ä ইনপুটটি 2 টি সমান টুকরোতে বিভক্ত করুন

¨ বিভাজনের প্রথম উপাদানটি পুশ করুন (1264621 এর ফলাফল 1264)

} শেষ যদি

È শেষ উপাদানটি সমান কিনা তা পরীক্ষা করে দেখুন

¹ আবার প্রথম ইনপুট পুশ করুন

R যে ইনপুট বিপরীত

È এখনই আছে কিনা তা পরীক্ষা করে দেখুন

Q এমনকি ফলাফলগুলি একই এবং অন্তর্নিহিতভাবে মুদ্রিত কিনা তা পরীক্ষা করুন


2
আপনি কি আপনার কোড সম্পর্কে কিছু ব্যাখ্যা রাখবেন?
ডেড পসসাম

সত্যিই শীঘ্রই করবে
পি। নপস 10

1
আপনি ¨পরিবর্তে ব্যবহার করতে পারে
রিলে

আপনার শেষ ,, অন্তর্নিহিত আউটপুট দরকার নেই। এছাড়াও পরিবর্তে আপনি দ্বিখণ্ডিত করা ব্যবহার করতে পারেন: Â; 12 এর জন্য 2 বাইটের সঞ্চয়:ÐRQi¨}ȹRÈQ
ম্যাজিক অক্টোপাস উরান

আমি দ্বিখণ্ডিত অংশটি পরীক্ষা করতাম, এটি কিছু দৃশ্যে অদ্ভুত আচরণ করে, তবে এটি ,আপনাকে নেতৃত্বের দিকে ঠেলে দেবে;)।
ম্যাজিক অক্টোপাস উরন

8

পিএইচপি, 55 52 বাইট

echo$p=strrev($n=$argn)==$n,$n-$n[$p*log($n,100)]&1;

এসটিডিআইএন থেকে ইনপুট নেয়; সাথে চালানো -R

আউটপুট:

  • 10 প্যালিনড্রোম এবং একই সমতার জন্য
  • 11 প্যালিনড্রোম এবং বিভিন্ন সমতার জন্য
  • 0 নন-প্যালিনড্রোম এবং একই সমতার জন্য
  • 1 নন-প্যালিনড্রোম এবং বিভিন্ন সমতার জন্য

মন্তব্য:

  • strlen($n)/2== log($n,10)/2==log($n,100)
  • যদি প্যালিনড্রোম হয় তবে মাঝের অঙ্কটি তুলনা করুন $n[1*log($n,100)]
  • যদি না হয়, প্রথম সংখ্যা $n[0*log($n,100)]
  • ... সম্পূর্ণ সংখ্যায় (<- সর্বনিম্ন বিট <- শেষ অঙ্ক)


@ রবার্টো06 $argnকেবলমাত্র এর সাথে সংজ্ঞায়িত করা হয়েছে -R, এবং এটি ট্যাগগুলিকে অনুমতি দেয় না।
তিতাস

ঠিক আছে, এটি জানতেন না, ধন্যবাদ।
roberto06

@ রবার্টো06 অপেক্ষা করুন ... $argnএছাড়াও উপলব্ধ -F। তবে এনএম
তিতাস

7

জেলি , 16 14 বাইট

DµŒḂṄHC×LĊị+ḢḂ

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

দুটি লাইন আউটপুট:

  • 1প্যালিনড্রোম 0জন্য, না জন্য
  • 0জন্য চতুর # 2 , 1না

ব্যাখ্যা

DµŒḂṄHC×LĊị+ḢḂ    Main link. Argument: n (number)
D                 Get the digits of n
 µ                Start a new monadic chain
  ŒḂ              Check if the digit array is a palindrome (1 if yes, 0 if no)
    Ṅ             Print the result with a newline
     H            Halve (0.5 if palindrome, 0 if not)
      C           Subtract from 1 (0.5 if palindrome, 1 if not)
       ×          Multiply by...
        L         ...length of array (length/2 if palindrome, length if not)
         Ċ        Round up
          ị       Take item at that index from the digits
           +      Add...
            Ḣ     ...first item of digits
             Ḃ    Result modulo 2

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

3
@DanFromGermany এখনও আমি বেশিরভাগ চরিত্রের কথা মনে করি না। এই কারণে আমি মার্কিন আন্তর্জাতিক কীবোর্ড লেআউটটিও শিখতে পারি নি, তাই আমি কেবল উইকি থেকে অক্ষরগুলি অনুলিপি করি । উন্নয়ন টিআইও-তে ট্রায়াল-এন্ড-ত্রুটির দ্বারা ঘটে।
পুর্কাকোদারী


5

পাওয়ারশেল , 114 99 বাইট

param($n)((0,(($z=$n[0]%2)-eq$n[-1]%2)),(1,($z-eq$n[$n.length/2]%2)))[($n-eq-join$n[$n.length..0])]

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

@ সাইনুসয়েডকে 15 বাইট সংরক্ষণ করা হয়েছে।

একটি স্ট্রিং হিসাবে ইনপুট। ধরনের একটি অ্যারের আউটপুট (0|1) (True|False)সঙ্গে 0ইঙ্গিত "একটি না যে শব্দ কবিতা প্রভৃতি উলটা করিয়া পড়িলেও একই থাকে " এবং 1যা নির্দেশ " যে শব্দ কবিতা প্রভৃতি উলটা করিয়া পড়িলেও একই থাকে ", এবং Trueইঙ্গিত সমতা ম্যাচ এবংFalse অন্যথায়।

এটি একটি সিউডো-টের্নারি ব্যবহার করে এবং উপযুক্ত স্থানে সূচীকরণের মাধ্যমে করা হয় (a,b)[index]($n-eq-join$n[$n.length..0])ইনপুটটি প্যালিনড্রোম কিনা তা সূচকটি পরীক্ষা করে। যদি তা না হয়, আমরা নিতে aঅংশ, যা একটি হয় 0সঙ্গে কিনা প্রথম সংখ্যা সমতা মিলিত $n[0]হয় -eqগত ডাক সমতা থেকে ual $n[-1]। অন্যথায়, আমরা সেই bঅংশে রয়েছি, যা মধ্য সংখ্যার সমান্তরালে (প্রথম অঙ্কের সমতা) ইউল 1কিনা$z-eq$n[$n.length/2]

পূর্বে, আমাকে "$($n[0])"পূর্ণসংখ্যার হিসাবে সঠিকভাবে কাস্ট করার জন্য প্রথম সংখ্যাটি পেতে হয়েছিল, যেহেতু $n[0]একটি charএবং মডিউল অপারেটর ASCII মানের উপর ভিত্তি করে %coelesces charএর ফলাফল আক্ষরিক মান নয়, অন্যদিকে stringআক্ষরিক মান দেয়। তবে, @ সাইনুসয়েড আমাকে দেখতে সাহায্য করেছিল যে 0,1,2,...,9আক্ষরিক মান হিসাবে সকলের সমানতা রয়েছে 48,49,50,...,57, সুতরাং যদি এটি ASCII মান ব্যবহার করে তবে আমরা এখনও একই ফলাফল পেতে পারি।

সেই অ্যারেটি পাইপলাইনে রেখে গেছে এবং আউটপুট অন্তর্ভুক্ত।


কৌতূহলের বাইরে, $যখন আপনি %2কোনও সংখ্যার মডুলাস করেছিলেন তখন আপনাকে কেন ডাবল কোট এবং অতিরিক্ত ব্যবহার করতে হবে ? আমি নিজেই এটি চেষ্টা করেছি এবং আমি প্রতিটি পদক্ষেপ স্বতন্ত্রভাবে করতাম তবে এটি প্রয়োজনীয় ছিল না, তবে আপনি যখন এটি অ্যারের ভিতরে রেখেছেন তখনই এটি হয়? পাওয়ারশেল কি এটিকে আলাদা পরিবর্তনশীল ধরণের হিসাবে বিবেচনা করে?
সিনসয়েড

@ সিনুসয়েড এটি একটি স্ট্রিং হিসাবে ইনপুট নিচ্ছে, তাই যখন $n[0]সূচী হয়, তখন এটি হিসাবে প্রকাশিত হয় char। থেকে কাস্ট করার charজন্য intবাধ্য %অপারেটর থেকে যেতে না '1'করার জন্য 1, কিন্তু হওয়া ASCII মান, তাই এটা 49। এর "$( )"পরিবর্তে স্ট্রিংয়ে স্পষ্ট কাস্ট করে, যা এটিকে সঠিকভাবে রূপান্তর করে 1। ... যদিও, এখন যে আপনি এটি উল্লেখ, সমতা এর 0..9হওয়া ASCII হিসাবে একই48..57 , তাই আমি সম্ভবত গলফ পারেন যে নিচে। ধন্যবাদ!
অ্যাডমবর্কবার্ক

@ সিনুসয়েড 15 বাইট সংরক্ষণ করেছে, ধন্যবাদ!
অ্যাডমবর্কবার্ক

3

ভিবিএ, 117 99 বাইট

তিতাসকে 18 বাইট সংরক্ষণ করে

Sub p(s)
b=s
If s=StrReverse(s)Then r=2:b=Left(s,Len(s)/2+.1)
Debug.?r+(Left(s,1)-b And 1);
End Sub

একবারে ফর্ম্যাট করলে এটি প্রসারিত হয় না:

Sub p(s)
    b = s
    If s = StrReverse(s) Then r = 2: b = Left(s, Len(s) / 2 + 0.1)
    Debug.Print r + (Left(s, 1) - b And 1);
End Sub

এখানে প্রদত্ত পরীক্ষার কেস ফলাফল:

s = 12345678     p(s) = 1 = False False
s = 12345679     p(s) = 0 = False True
s = 12344321     p(s) = 3 = True False
s = 123454321    p(s) = 2 = True True

ভিবিএতে কি বিটওয়াইজ অপারেটর রয়েছে? &1পরিবর্তে চেষ্টা করুন mod 2। এছাড়াও আপনি পরিত্রাণ পারে পেতে If/Thenসঙ্গে r=r+2-2*(left(s,1)-b &1)আরও ভাল বা If s = StrReverse(s) then r=2এবং r=r+1-(left(s,1)-b &1)... এবং 2 চতুর # 2 reversing সঙ্গে বন্ধ বাইট: r=r+(left(s,1)-b &1); এটা সরাসরি মুদ্রণ সঙ্গে আরো সংরক্ষণ করুন: Debug.Print r+(left(s,1)-b &1)। তখন 95 বাইট হওয়া উচিত; 98 যদি &1কাজ না করে।
তিতাস

@ টিটাস ধন্যবাদ! আমি আসলেই বিটওয়াইজ অপারেশনের সাথে পরিচিত ছিলাম না। ভিবিএতে বিটওয়াইজ অপারেশন রয়েছে তবে তারা ন্যায়বিচারের Andপরিবর্তে ব্যবহার করে &। আপনার প্রথম পরামর্শটি কীভাবে প্রয়োগ করতে হবে তা আমি খুঁজে বের করেছি তবে আপনি কীভাবে ২ য় লাইনটি পরিবর্তন করতে চেয়েছিলেন তা আমি বুঝতে পারি না StrReverse
ইঞ্জিনিয়ার টোস্ট

Sub p(s);b=s;If s=StrReverse(s)Then r=2:b=Mid(s,Len(s)/2+.1,1);Debug.?r+(Left(s,1)-b&1);End Sub-> প্যালিনড্রোমের জন্য 0/2, কৌশল # 2 এর জন্য 1/0
টাইটাস

ওহ এবং আপনার Mid()সাথে আরও কিছু প্রতিস্থাপন করতে সক্ষম হওয়া উচিত Left(s,Len(s)/2+1)
টাইটাস

1
@ টিটাস কারণ ভিবিএ বোকা এবং সর্বদা 0.5 থেকে গোল হয় না। এটি বৃত্তাকার থেকে সমতুল্য যুক্তি ব্যবহার করে। যদি স্ট্রিংটি 9 টি অক্ষর দীর্ঘ হয়, তবে Len(s)/2= 4.5কোন ভিবিএটি হবে 4। যদি 7 টি অক্ষর দীর্ঘ, তারপর Len(s)/2= 3.5যা VBA হবে এছাড়াও রাউন্ডে 4। যুক্ত করা 0.1পাগলিকে সংশোধন করে।
ইঞ্জিনিয়ার টোস্ট

3

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

{($/=.flip==$_),[==] .ords[0,($/??*/2!!*-1)]X%2}

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

ফলাফল (True True) (True False) (False True)বা(False False)

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

{                  # bare block lambda with implicit parameter 「$_」

  (
    $/ =           # store in 「$/」
    .flip == $_    # is 「$_」 equal backwards and forwards
  ),


  [==]             # reduce the following using &infix:<==> (are they equal)

    .ords\         # list of ordinals (short way to make 「$_」 indexable)
    [
      0,           # the first digit's ordinal
      (
        $/         # if the first test is True (palindrome)
        ??   * / 2 # get the value in the middle
        !!   * - 1 # else get the last value
      )
    ]
    X[%] 2         # cross those two values with 2 using the modulus operator
}

3

জাভা 8, 205 197 182 168 134 বাইট

n->{int l=n.length(),a=n.charAt(0)%2;return n.equals(new StringBuffer(n).reverse()+"")?a==n.charAt(l/2)%2?4:3:a==n.charAt(l-1)%2?2:1;}

ফলাফল: 1মিথ্যা-মিথ্যা জন্য; 2মিথ্যা-সত্যের জন্য; 3সত্য-মিথ্যা জন্য; 4সত্য-সত্য জন্য।

ব্যাখ্যা:

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

n->{                     // Method with String parameter and integer return-type
  int l=n.length(),      //  The length of the input String
      a=n.charAt(0)%2,   //  Mod-2 of the first digit
  return n.equals(new StringBuffer(n).reverse()+"")?
                         //  If the String is a palindrome
    a==n.charAt(l/2)%2?  //   And if the first and middle digits are both even/odd
     4                   //    return 4
    :                    //   Else
     3                   //    Return 3
   :a==n.charAt(l-1)%2 ? //  Else-if the first and last digits are both even/odd
    2                    //   Return 2
   :                     //  Else
    1;                   //   Return 1
}                        // End of method

1

Haskell, , 89 বাইট

(x:r)#y=mod(sum$fromEnum<$>[x,y])2
f x|reverse x/=x=2+x#last x|y<-length x`div`2=x#(x!!y)

এটি অনলাইন চেষ্টা করুন! ব্যবহার: f "12345"0সত্য সত্যের জন্য ফিরে আসে ,1 সত্য মিথ্যা জন্য, 2মিথ্যা সত্য এবং3 মিথ্যা মিথ্যা জন্য।

ফাংশন #উভয় অঙ্কের অক্ষরকে তাদের আসকি চরিত্রের কোডগুলিতে রূপান্তর করে এবং তাদের যোগফল দেয়। উভয় সমান হলে বা উভয়ই সমষ্টিটি সমান হবে, অন্যথায় যদি একটি সমান হয় এবং অন্যটির যোগফলটি বিজোড় হয়। দুটি মডিউল গণনা করা হচ্ছে, সমতার জন্য এবং অন্যথায় #ফেরত দেয় । ইনপুট স্ট্রিংটি প্যালিনড্রোম কিনা তা পরীক্ষা করে । যদি না হয় তবে ডেকে আনা হয় এবং ফলাফলটির সাথে দুটি এবং এর শেষ চরিত্রটি যুক্ত করা হয়, অন্যথায় যদি এর পরিবর্তে মধ্যবর্তী চরিত্রের সাথে প্যালিনড্রোমিক কল হয় এবং ফলটি যেমন হয় তেমন ছেড়ে যায়।01fx#xxx#x


1

কোটলিন , 142 বাইট

fun Char.e()=toInt()%2==0;
val y=x.reversed()==x;val z=x.first();println("${y},${if(y)z.e()==x.get(x.length/2).e();else z.e()==x.last().e()}")

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

fun Char.e() = toInt() % 2 == 0; //character extension function, returns if character(as int) is even

val y = x.reversed() == x
val z = x.first()

println(
"${y} //returns whether or not input is a palindrome
, //comma separator between the values
${if(y) z.e() == x.get(x.length/2).e() // if it's a palindrome compare first and middle parity
else z.e() == x.last().e()}" //else compare first and last parity
)

1

রেক্সএক্স, 104 100 বাইট

arg a
parse var a b 2''-1 c
e=a=reverse(a)
b=b//2
if e then f=b&centre(a,1)//2
else f=b&c//2
say e f

ফেরত পাঠায় লজিক্যাল মান যুগল 0 0, 0 1, 1 0বা 1 1


1

আর, 115 109 105 বাইট

w=strtoi(el(strsplit(scan(,""),"")))
c(p<-all(w==rev(w)),w[1]%%2==switch(p+1,tail(w,1),w[sum(1|w)/2])%%2)

স্টিডিন থেকে ইনপুট নেয়। রিটার্নস FALSE FALSEমিথ্যা মিথ্যা জন্য, FALSE TRUEসত্য মিথ্যা জন্য, TRUE FALSEসত্য মিথ্যা জন্য, এবং TRUE TRUEসত্য সত্য জন্য।


1

এডাব্লুকে, 97 96 বাইট

{n=split($0,a,"")
for(;j<n/2;)s+=a[j+1]!=a[n-j++]
x=(a[1]%2==a[s?n:int(n/2)+1]%2)+(s?0:2)
$0=x}1

সবচেয়ে সহজ ব্যবহার হ'ল কোডটিকে ফাইলের মধ্যে স্থাপন করা: OddEvenতবে করুন:

awk -f OddEven <<< "some number here"

আউটপুট মূলত প্রশ্নের মধ্যে তুলনার বিট-যোগ হয়, যেমন

0, Not palindrome and first and last digits have different parity
1, Not palindrome and first and last digits have same parity 
2, Palindrome and the first digit and middle digit have different parity
3, Palindrome and the first digit and middle digit have same parity

আমি এর ()থেকে অপসারণ করার চেষ্টা করেছি (s?0:2)তবে এটি কোনওভাবে অপারেটরটির অগ্রাধিকারটিকে ব্যর্থ করে দেয় ।


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

1

সিজেম, 32 বাইট

q:N_W%=N0=~2%NW=~2%N_,2/=~2%3$?=

ইনপুট স্ট্যাকের শীর্ষে একটি নম্বর।

ব্যাখ্যা:

q                                 e# Read input:          | "12345679"
 :N                               e# Store in N:          | "12345679"
   _                              e# Duplicate:           | "12345679" "12345679"
    W%                            e# Reverse:             | "12345679" "97654321"
      =                           e# Check equality:      | 0
       N                          e# Push N:              | 0 "12345679"
        0=~                       e# First digit:         | 0 1
           2%                     e# Modulo 2:            | 0 1
             N                    e# Push N:              | 0 1 "12345679"
              W=~                 e# Get last digit:      | 0 1 9
                 2%               e# Modulo 2:            | 0 1 1
                   N              e# Push N:              | 0 1 1 "12345679"
                    _             e# Duplicate:           | 0 1 1 "12345679" "12345679"
                     ,            e# Length:              | 0 1 1 "12345679" 8
                      2/          e# Divide by 2:         | 0 1 1 "12345679" 4
                        =         e# Get digit (as char): | 0 1 1 '5
                         ~        e# Eval character       | 0 1 1 5
                          2%      e# Modulo 2:            | 0 1 1 1
                            3$    e# Copy stack element:  | 0 1 1 1 0
                              ?   e# Ternary operator:    | 0 1 1
                               =  e# Check equality:      | 0 1


1

খাঁজকাটা, 326 303 বাইট

সঙ্কুচিত কোড:

String str="12345678";char pal,par;pal=str==str.reverse()?'P':'N';if(pal=='P'){par=(int)str.charAt(0).toString()%2==str.charAt((int)str.length()-1-(int)((str.length()-1)/2))%2?'S':'N'}else{par = (int)str.charAt(0).toString()%2==str.charAt((int)(str.length()-1)%2)?'S':'N'};print((String)pal+(String)par)

মূল কোড (ব্যাখ্যা সহ):

Declare str as String                        String str = "12345678"
Declare pal and par as char                  char pal, par
Check if Palindrome or not                   pal = str==str.reverse()?'P':'N'
If Palindrome...                             if (pal=='P') {
and has same parity (S) and if not (N)       par = (int)str.charAt(0).toString()%2==str.charAt((int)str.length()-1-(int)((str.length()-1)/2))%2?'S':'N'
else if not palindrome...                    } else {
and has same parity (S) and if not (N)       par = (int)str.charAt(0).toString()%2==str.charAt((int)(str.length()-1)%2)?'S':'N'
closing tag for if                           }
Print desired output                         print((String)pal+(String)par)

আসল কোড (ব্যাখ্যা ছাড়াই):

String str = "12345678"
char pal, par
pal = str==str.reverse()?'P':'N'
if (pal=='P') {
    par = (int)str.charAt(0).toString()%2==str.charAt((int)str.length()-1-(int)((str.length()-1)/2))%2?'S':'N'
} else {
    par = (int)str.charAt(0).toString()%2==str.charAt((int)(str.length()-1)%2)?'S':'N'
}
print((String)pal+(String)par)

ইনপুট:

Just change "12345678" to another set of non-negative digits.

আউটপুট:

"PS" - Palindrome with Same Parity
"PN" - Palindrome with Diff Parity
"NS" - Non-palindrome with Same Parity
"NN" - Non-palindrome with Diff Parity
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.