Wie überprüft man, ob die binäre Darstellung einer ganzen Zahl ein Palindrom ist?

7

Wie überprüft man, ob die binäre Darstellung einer ganzen Zahl ein Palindrom ist?

    
yesraaj 10.05.2009, 18:07
quelle

15 Antworten

11

Da Sie keine Sprache angegeben haben, um dies zu tun, hier ein C-Code (nicht die effizienteste Implementierung, aber es sollte den Punkt veranschaulichen):

%Vor%

BEARBEITEN für Ihre 10001 behoben.

    
rlbond 10.05.2009, 18:15
quelle
16

Hoffentlich richtig:

%Vor%     
Christoph 22.06.2009 23:55
quelle
3

Erstellen Sie ein 256-Liniendiagramm mit einem Char und einem Bit-umgekehrten Zeichen. eine 4-Byte-Ganzzahl gegeben, Nimm das erste Zeichen, schaue es auf dem Diagramm an und vergleiche die Antwort mit dem letzten Zeichen der Ganzzahl. wenn sie sich unterscheiden, ist es kein Palindrom, wenn sie sich mit den mittleren Zeichen wiederholen. wenn sie sich unterscheiden, ist es kein Palindrom, sonst ist es.

    
Liran Orevi 10.05.2009 18:19
quelle
2

Viele schöne Lösungen hier. Lassen Sie mich eine hinzufügen, die meiner Meinung nach nicht die effizienteste, aber sehr lesenswerte ist:

%Vor%     
Stephan202 10.05.2009 19:15
quelle
1

Folgendes sollte an jeden vorzeichenlosen Typ angepasst werden können. (Bitoperationen bei Typen mit Vorzeichen sind häufig mit Problemen behaftet.)

%Vor%     
Dingo 11.05.2009 12:22
quelle
1
%Vor%     
user3059007 30.09.2014 22:09
quelle
0

Ich habe immer eine Palindrome-Funktion, die mit Strings arbeitet, die true zurückgibt, wenn dies der Fall ist, andernfalls false, z. in Java. Das einzige, was ich tun muss, ist etwas wie:

%Vor%     
rapfaria 10.05.2009 18:24
quelle
0

Eine generische Version:

%Vor%     
dirkgently 10.05.2009 19:03
quelle
0

Ich denke, der beste Ansatz besteht darin, an den Enden zu beginnen und sich nach innen zu arbeiten, dh das erste Bit und das letzte Bit, das zweite Bit und das vorletzte Bit usw. zu vergleichen, die O (N / 2 ) wobei N die Größe des int ist. Wenn Ihre Paare zu irgendeinem Zeitpunkt nicht gleich sind, ist es kein Palindrom.

%Vor%     
i_am_jorf 10.05.2009 18:43
quelle
0

Manchmal ist es auch gut, einen Fehler zu melden;

Hier gibt es viele gute Antworten auf die offensichtliche Methode, das Bitmuster in irgendeiner Form zu analysieren. Ich frage mich allerdings, ob es mathematische Lösungen gäbe? Gibt es Eigenschaften paldromischer Zahlen, die wir ausnutzen könnten?

Also habe ich ein bisschen mit Mathe gespielt, aber die Antwort sollte von Anfang an klar gewesen sein. Es ist trivial zu beweisen, dass alle binären palindromischen Zahlen entweder ungerade oder null sein müssen. Das ist so weit, wie ich damit umgehen konnte.

Eine kleine Untersuchung zeigte keinen solchen Ansatz für dezimale Palindrome, also ist es entweder ein sehr schwieriges Problem oder nicht über ein formales System lösbar. Es könnte interessant sein, Letzteres zu beweisen ...

    
Chris Arguin 14.05.2009 03:59
quelle
0
%Vor%     
A M 22.06.2009 23:09
quelle
0
%Vor%
  1. Call PalInt (i, 1) für binäre Pallindrome
  2. Call PalInt (i, 3) für Octal Palindrome
  3. Call PalInt (i, 4) für Hex Palindrome
Hariprasadmce 15.05.2013 18:26
quelle
0

Ich weiß, dass diese Frage vor zwei Jahren gestellt wurde, aber ich habe eine bessere Lösung, die nicht von der Wortgröße und allem abhängt,

%Vor%     
Raman Bhatia 10.03.2012 14:33
quelle
0

In JAVA gibt es einen einfachen Weg, wenn Sie grundlegendes binäres airthetic verstehen, hier ist der Code:

%Vor%     
Wajahat 09.01.2014 12:56
quelle
0
%Vor%     
cppcoder 08.06.2014 07:44
quelle

Tags und Links