কোনও সংখ্যার বাইনারি প্রতিনিধিত্ব প্যালিনড্রোম হয় নাকি?


16

কোনও সংখ্যার বাইনারি উপস্থাপনা প্যালিনড্রোম কিনা তা জানতে একটি সম্পূর্ণ প্রোগ্রাম লিখুন?

Sample Input
5

Sample Output
YES

YESবাইনারি উপস্থাপনা প্যালিনড্রোম এবং NOঅন্যথায় মুদ্রণ করুন ।


প্যালিনড্রোম না হলে আউটপুটটি কী হওয়া উচিত ?
— ডগবার্ট

@ ডগবার্ট এটি উদ্ধৃতি ব্যতীত 'না' হওয়া উচিত।
— fR0DDY

আপনি কীভাবে জানবেন যে এটি একটি প্যালিনড্রোম? কারণ প্রথম ননজারো থেকে শুরু করে স্ট্রিংয়ের শেষে মানগুলি প্যালিনড্রোমিক হয়? এটি আমার কাছে সত্যই দুর্গন্ধযুক্ত, একটি চ্যালেঞ্জ হিসাবে।
— jcolebrand

1
আমি <3 গিনিবলারের উত্তর হিসাবে, এটি আসলে সবচেয়ে সংক্ষিপ্ত সমাধান নয় এবং [কোড-গল্ফ] ট্যাগযুক্ত কোনও প্রশ্নের বিজয়ী হিসাবে সংক্ষিপ্ততম সমাধানটি বেছে নেওয়া উচিত।
— ক্রিস জেস্টার-ইয়ং

ইনপুট দেওয়া হয় কিভাবে?
— জোয়ে

উত্তর:


5

গল্ফস্ক্রিপ্ট - 22 টি অক্ষর

~2base.-1%="YES""NO"if

24

পাইথন - 46 টি অক্ষর

n=bin(input())[2:]
print'YNEOS'[n!=n[::-1]::2]

কি দারুন. কি করে [n!=n[::-1]::2]?
— ডগবার্ট

2
@ ডগবার্ট, এন [:: - 1] একটি স্লাইস। শুরু এবং শেষ সূচকগুলি খালি, সুতরাং এর অর্থ পুরো স্ট্রিং। স্টেপসাইজটি -১, সুতরাং যখন আপনি [:: - 1] দেখেন তবে স্ট্রিং / তালিকা ইত্যাদি বিপরীত করার জন্য এটি একটি ছোট উপায় So সুতরাং এন! = এন [:: - 1] এন না হলে সত্য (অর্থাত্ 1) একটি প্যালিনড্রোম। সুতরাং যখন এন প্যালিনড্রোম হয়, আপনি 'ওয়াইএনইওএস' পান [0 :: 2] - 0 থেকে শুরু করুন এবং প্রতি 2 য় অক্ষর নিন। যখন এন কোনও প্যালিনড্রোম না হয় আপনি 'ওয়াইএনইওএস' [1 :: 2] পাবেন - 1 থেকে শুরু করুন এবং প্রতিটি দ্বিতীয় চরিত্রটি গ্রহণ করুন :)
— gnibbler

আমি মনে করি লোকেরা স্লাইস ট্রিকের জন্য ভোট দিচ্ছে :), ঠিক তাই। : পি +1
— st0le

4

রুবি, 41 39

$><<%w(YES NO)[(n="%b"%$*)<=>n.reverse]

মাইকেল কোহেলের "% বি"% কৃতিত্বের জন্য ধন্যবাদ।


খুব সুন্দর, আমি এটি অনেক পছন্দ করি! স্পেসশিপটি সৃজনশীল উপায়ে ব্যবহারের জন্য +1 :-)
— মাইকেল কোহল

4

সি 84 81 74 অক্ষর

r;main(v,x){for(scanf("%d",&v),x=v;v;v/=2)r=r*2|v&1;puts(r-x?"NO":"YES");}

এটি স্ট্রিং রিভার্সের মতো কোনও ফাংশন ব্যবহার করে না।


আপনি পরিবর্তন কয়েকটি অক্ষর সংরক্ষণ করা যায়নি r<<=1মধ্যে r*=2, v>>=1মধ্যে v/=2এবং {}মধ্যে ;?

পছন্দ করুন পরিবর্তন হয়েছে। অনেক ধন্যবাদ.
— fR0DDY

r*=2,r|=v&1-> r=r*2|v&1(-2)
— তিতাস

এবং সেই শব্দটিকে লুপের শরীরে নিয়ে যাওয়া অন্য একটি বাইট সংরক্ষণ করে।
— টাইটাস

3

জাভাস্ক্রিপ্ট - 79 77 অক্ষর

alert((a=(prompt()*1).toString(2))-a.split("").reverse().join("")?"NO":"YES")

অধিক তথ্য

prompt()*1 : স্ট্রিংকে সংখ্যায় রূপান্তর করার জন্য দ্রুত কৌশল।

.toString(2) : আপনি জাভাস্ক্রিপ্টে বাইনারি রূপান্তর এইভাবে।

a.split("").reverse().join("") : বিপরীত স্ট্রিংয়ের কোনও দেশীয় সমর্থন নেই, সুতরাং আপনাকে স্ট্রিংকে অ্যারে এবং অ্যারেগুলিতে স্ট্রিংয়ে রূপান্তর করতে হবে।

("[part1]" - "[part 2]")?"YES":"NO": 1 টি সংরক্ষণের -জন্য প্রতিস্থাপন !=।


1
দুর্দান্ত ব্যাখ্যা।
— তেহশ্রিকে

2

পিএইচপি - 41

<?=strrev($n=decbin(`cat`))==$n?@YES:@NO;

টেস্ট:

php 713.php <<< 5
YES
php 713.php <<< 6
NO

4
আপনি যদি ইনপুটটি পেতে শেল কলগুলি ব্যবহার করতে চলেছেন তবে সেভ করার m4পরিবর্তে পাশাপাশি ব্যবহার catকরতে পারেন। এছাড়াও আছে pgএবং dd(যা stderr কিছু বাইট লিখে)।
— নবেব

আপনি কি উইন্ডোজে চেষ্টা করেছেন? ;)
— তিতাস

2

পার্ল, 45 টি অক্ষর

$_=sprintf'%b',shift;
print reverse==$_?YES:NO


2

উইন্ডোজ পাওয়ারশেল, 67

('NO','YES')[($a=[Convert]::ToString("$input",2))-eq-join$a[64..0]]

2

05 এ বি 1 ই, 17 12 বাইট (প্রতিদ্বন্দ্বী)

‘NO…Ü‘#EbÂQè

-৫ বাইট ধন্যবাদ আদনানকে।

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


আরে সুন্দর! আমি এটিকে কিছুটা গল্ফ দেওয়ার চেষ্টা করেছি এবং 12 বাইটে এসেছি ‘NO…Ü‘#EbÂQè:)।
— আদনান

গ্রেট! আমি এখনও জানি না কীভাবে সংকুচিত স্ট্রিংগুলি ব্যবহার করতে / তৈরি করতে পারি। এছাড়াও, আমি জানতাম না যে ফাংশনটির bin()অস্তিত্ব রয়েছে
— অ্যাক্রোলিথ

2
আপনি যদি আগ্রহী হন তবে এখানে প্রকৃত উদাহরণ রয়েছে।
— আদনান

প্রশ্নটি ভাষাটির আগে থেকেই এই উত্তরটি প্রতিযোগিতামূলক নয়।
— Okx


1

পার্ল (73)

কোনও স্ট্রিং বিপরীত নয়:

print f(split//,sprintf'%b',shift);
sub f{@_<=1?YES:shift!=pop()?NO:f(@_)}

1

পার্ল (127)

এইটি 2 ^ 32 পর্যন্ত সমস্ত প্যালিনড্রোমগুলি তৈরি করে।

sub f{
    my($x,$l)=@_;
    $l+=2,f(($x<<$_)+1+(1<<$l-1),$l)?return 1:0 for 1..15-$l/2;
    $x-$ARGV[0]?0:1
}
print f(0,1)+f(0,0)+f(1,1)?YES:NO

1

বাশ, 55 টি অক্ষর

C=`dc<<<$1\ 2op`;[ $C = `rev<<<$C` ]&&echo YES||echo NO

ঠিক আছে, প্রযুক্তিগতভাবে এটি bash এবং dc এবং rev :-)


1

জে: 24

((-:|.)#:x){2 3$'NO YES'

উদাহরণ:

   ((-:|.)#:5){2 3$'NO YES'
YES
   ((-:|.)#:12){2 3$'NO YES'
NO
   ((-:|.)#:125){2 3$'NO YES'
NO
   ((-:|.)#:63){2 3$'NO YES'
YES

1

হাস্কেল (79)

0?k=n;n?k=div n 2?(n`mod`2+k*2);f x|x==x?0="YES"|True="No";main=interact$f.read

ভুলে যাবেন না: হাস্কেলে এটি সত্যিই বড় সংখ্যার সাথে কাজ করবে।
— FUZxxl

2
আহ, আসলে এটি 79 টি অক্ষর। ;-)
— মাইকেল কোহল


1

পাইথ, 18 বাইট

%2>"YNEOS"!qJ.BQ_J

এছাড়াও 18 বাইট:

@,"NO""YES"qJ.BQ_J

1

পিএইচপি, প্রতিযোগিতা নয়

আমি স্ট্রিং ব্যবহার না করেই এটি করতে চেয়েছিলাম।

পুনরাবৃত্তি সমাধান, 78 বাইট

for($x=log($n=$argv[1],2);$i<$x&($n>>$i^$n>>$x-$i^1);$i++);echo$i<$x/2?NO:YES;

পুনরাবৃত্তির সমাধান, 113 বাইট

function p($n,$x=0){return$n<2?$n:is_pal(($n&(1<<$x=log($n,2)/2)-1)^$n>>$x+!is_int($x));}echo p($argv[1])?YES:NO;

যদি nবাইনারি প্যালিনড্রোম হয় তবে উপরের অর্ধেক জোর নীচের অর্ধেকটিও বাইনারি প্যালিনড্রোম এবং তদ্বিপরীত।


fR0DDY , 58 বাইট থেকে দুর্দান্ত সি উত্তরের একটি বন্দর

for($x=2*$v=$argv[1];$x/=2;$r=$r*2|$x&1);echo$r-$v?NO:YES;

একটি বাইনারি বিপরীত। কলম্বাস ডিম।


1

রেটিনা , 80 78 বাইট (প্রতিদ্বন্দ্বী)

বাইট গণনাটি আইএসও 8859-1 এনকোডিং ধরেছে।

.+
$*
+`(1+)\1
${1}0
01
1
^((.)*?).??((?<-2>.)*$)
$1¶$3
O$^`.(?=.*¶)

^(.*)¶\1

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

অ্যানারিতে রূপান্তর করুন। বাইনারি রূপান্তর করুন। অর্ধেক সংখ্যাটি কেটে মধ্যম সংখ্যাটি সরিয়ে ফেলুন যদি সেখানে একটি থাকে। প্রথমার্ধকে বিপরীত করুন। উভয় অর্ধেক সমান হলে মিল।


1

জেলি , 12 বাইট (প্রতিদ্বন্দ্বী)

BṚ⁼Bị“YES“NO

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

ব্যাখ্যা:

BṚ⁼Bị“YES“NO Main link. Arguments: z.
B            Binary representation of z.
 Ṛ           Reversed.
   B         Binary representation of z.
  ⁼          Check if x is equal to y.
     “YES“NO [['Y', 'E', 'S'], ['N', 'O']]
    ị        xth element of y (1-indexed).

মুদ্রণের আগে পাইথনের strফাংশনটি একটি তালিকার মাধ্যমে ম্যাপ করা হয় এবং তারপরে উপাদানগুলিকে সংমিশ্রিত করা হয়, সুতরাং আপনি দেখুন YESবা NO।


0

হ্যাক্স, 164 বাইট

কেবল সিস্টেম প্ল্যাটফর্মের সাথে কাজ করে (পিএইচপি, নেকো, সিপিপি, ইত্যাদি) কমান্ড লাইন আর্গুমেন্টের মাধ্যমে ইনপুট নেয়।

class T{static function main(){var r:Dynamic=Std.parseInt(Sys.args()[0]);var s=r.toString(2);trace(s==[for(i in-s.length+1...1)s.charAt(-i)].join('')?"YES":"NO");}}


-1

জাভা, 97 85 টি অক্ষর

return Integer.toBinaryString(i).equals(new StringBuffer(s).reverse()+"")?"YES":"NO";
    স্ট্রিং s = Integer.toBinaryString (i);
    রিটার্ন s.equals (নতুন স্ট্রিংবফার (গুলি)। রিভার্স () + "")? "হ্যাঁ": "না";

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